1

我编写了一个在 Opera 和 Firefox 中正常工作的 jQuery 脚本,但是 Internet Explorer 有问题。

当我开始测试脚本时,它 alert ( prlvg.attr('prl') );在 Opera 和 Firefox 中返回正确的文本,但在资源管理器中返回undefined

我之前的步骤在prlvg那里:

var top = $('a[prl]:first').offset().top; 
var vwtmbs = $('a[prl]').filter(function(){
    var offsetW = $(this).offset().top - $(window).scrollTop();
    return(offsetW <= window.innerHeight );
});

prlvg = vwtmbs.last();
alert ( prlvg.attr('prl') );

如何解决问题?谢谢。

更新:似乎问题在于window.innerHeightIE undefined,之后的所有代码也未定义。

4

2 回答 2

1

7 到 10 的 Internet Explorer 可以很好地处理您的自定义属性:http: //jsfiddle.net/xpjcU/

除此之外,我会避免在您的 HTML 中使用这样的自定义属性。相反,如果要存储有关元素的额外信息,请使用data-属性:

<p data-prl="foo">Bar</p>

然后,您可以通过 与自定义数据进行交互$.data()

于 2012-05-15T15:04:01.140 回答
0

您的 Explorer 版本可能不会采用您的自定义attr. 我建议你在这样的类中通过它:并用orclass="prl_foo"选择它$(a).hasClass(...)$("a[class^='prl_']")

于 2012-05-15T14:59:37.030 回答