1

Opera と Firefox で正しく動作する jQuery スクリプトを作成しましたが、Internet Explorer には問題があります。

スクリプトのテストを開始すると、Opera と Firefox では正しいテキストが alert ( prlvg.attr('prl') );返されますが、Explorer では返されます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') );

問題を解決するには?ありがとう。

更新: IE に問題がwindow.innerHeightあるようで、undefinedその後のすべてのコードも未定義です。

4

2 に答える 2

1

Internet Explorer 7 から 10 は、カスタム属性を問題なく処理しています: http://jsfiddle.net/xpjcU/

それとは別に、HTML でこのようなカスタム属性を使用することは避けたいと思います。要素に関する追加情報を保存する場合は、代わりにdata-属性を使用します。

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

その後、 を介してこのカスタム データを操作できます$.data()

于 2012-05-15T15:04:01.140 に答える
0

Explorerのバージョンはカスタムを使用しない場合がありますattr。:のようなクラスでこれを渡し、またはclass="prl_foo"で選択することをお勧めします$(a).hasClass(...)$("a[class^='prl_']")

于 2012-05-15T14:59:37.030 に答える