0

此脚本在 wordpress 生成的导航菜单中向当前页面添加一个活动类(更改颜色并添加小背景图像箭头)。但是 document.ready 函数在 IE 7 和 8 中不起作用。

查询:

$(document).ready(function(){
    $('#menu-top-menu a').each(function(index) {
        if(this.href.trim() == window.location)
            $(this).addClass("active");
    });
});

CSS:

.active {color: #41A2FF !important; background-image: url('navarrow.png'); background-repeat: no-repeat; background-position: 50% 3%; padding-top: 10px;}

我在谷歌上搜索了很多,并查看了这个论坛上与类似 IE <9 问题相关的一些主题,并且一些答案似乎指向了窗口。和 .href 声明,但我似乎无法弄清楚为什么它没有添加类。任何帮助将不胜感激,因为我对 jquery 的了解有限。

-谢谢

...问题解决了,.trim() 在 IE 中不起作用: if($(this).attr("href") == window.location)

4

1 回答 1

0

要让 .trim() 在 ie7 和 8 中工作,必须在标头中添加 if:

if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, ''); 
  }
}

不使用 .trim():

$(document).ready(function(){
    $('#menu-top-menu a').each(function(index) {
       if($(this).attr("href") == window.location)
            $(this).addClass("active");
    });
});

...但是第二种方法将我限制为只能将类应用于顶级导航

于 2012-11-23T14:31:52.983 回答