【问题标题】:keep link style when changing page Javascript更改页面Javascript时保持链接样式
【发布时间】:2013-12-26 12:51:05
【问题描述】:

我正在使用 Smarty 和 php4(无法升级 =( )。在左侧的网站上,我有一个包含所有链接的导航栏。我希望单击该链接将颜色更改为红色并保持红色,直到我单击另一个链接。我在谷歌搜索时已经发现了一些东西,但我无法让它工作,每个人都说它运行完美:/..... 当我单击链接时脚本将颜色更改为红色,但未能保持红色在我的网址更改后。

{literal}
<script type="text/javascript">
// first component: non-active link-color
// second component: active link-color
var arrColor = new Array("#404040","#e40624");

var lnkOldID = "";
var lnkOldColor;

// get object-type
IE = document.all&&!window.opera;
DOM = document.getElementById&&!IE;


function activeLink(lnkID){
    // declare object
    myObj = (IE)?document.all[lnkID]:document.getElementById(lnkID);
    // if no link is chosen
    if(lnkOldID == ""){
        lnkOldID = lnkID;  // remember cur. ID 
        lnkOldColor = arrColor[0];  // remember cur. color
        myObj.style.color = arrColor[1];  // change color
    }else{
        // if current link is not active link
        if(lnkOldID != lnkID){
            // declare object
            var myOldObj = (IE)?document.all[lnkOldID]:document.getElementById(lnkOldID);
            myOldObj.style.color = lnkOldColor;    // set color to non-activelink color
            myObj.style.color = arrColor[1];      // setcolor to activelinkcolor 
            lnkOldID = lnkID;      // remember cur. ID 
            lnkOldColor = arrColor[0];  // remember cur. color
        }
    }
}
</script>
{/literal}

<a onClick="activeLink('verteilung_prios')" id="verteilung_prios" href="?n=navigation_pm&a=verteilung_prios">Verteilung Prios</a>
<a onClick="activeLink('histogramm_reaktionszeiten')" id="histogramm_reaktionszeiten" href="?n=navigation_pm&a=histogramm_reaktionszeiten">Histogramm Reaktionszeiten</a>

【问题讨论】:

    标签: javascript html css hyperlink styles


    【解决方案1】:

    换班怎么样?

    sample

    脚本:

    function toggleColor(obj) {
        var redObjs = document.getElementsByClassName('red');
    
        for ( var i = 0; i < redObjs.length; i++ ) {
            redObjs[i].className = '';
        }
    
        obj.className = 'red';
    }
    

    页面刷新时添加类函数 在 document.onload 中执行

    function initClass() {
        // get now url
        //var nowUrl = document.location.href;
        // dummy url
        var nowUrl = 'http://fiddle.jshell.net/now/';
    
        // get elements that have 'navi' class
        var naviObjs = document.getElementsByClassName('navi');
    
        for ( var i = 0; i < naviObjs.length; i++ ) {
            if ( naviObjs[i].href == nowUrl ) {
                // check url
                //alert(naviObjs[i].className);
    
                // add 'red' class
                naviObjs[i].className += ' red';
            }
        }
    }
    

    css:

    a:visited
    {
        color: #404040;
    }
    
    a.red
    {
        color: #e40624;
    }
    

    【讨论】:

    • 感谢帮助,但问题与以前相同。当 url 改变样式时重置
    • 你可以通过 Smarty 将 class 设置为 now url 标签吗?像这样
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    相关资源
    最近更新 更多