1

ねえ、最新のすべてのブラウザで動作するコードがありますが、IE 6.7 では動作しません。

$('.cat1').toggle(function() {

    $(this).parent('li').next('ul').slideUp(); 
    $(this).css('background-position', '0px 0px');

    return false;

}, function() {

    $(this).parent('li').next('ul').slideDown(); 
    $(this).css('background-position', '-210px 0px');

    return false;

});

background-position は変更されますが、slideUp または slideDown は変更されません。なぜですか?

$(this) のせいだと思ったのですが、よくわかりません。もしそうなら、それを機能させる方法はありますか?

編集:「next()」関数に問題があるようです。

4

2 に答える 2

1

明らかに、 $(this) が機能するか、background-position も変更されません。どの要素が選択されているか、または選択されていないかに関係があると思います。(IE であるため) 選択を分解し、実際にどの要素が選択されているかを把握するためにいくつかのアラートを実行することをお勧めします。おそらく、IE は、クリックしている要素と、それが親であると思われるリスト要素との間に、DOM に追加の要素を挿入しています。その場合、closest('li') を使用するように変更することは、ツリーをさかのぼってそこに含まれるリスト要素を取得する方法です。

于 2009-09-26T12:50:17.120 に答える
0

これは、jQuery で noConflict を使用することで簡単に対処できます。これは、それを説明する jQuery ドキュメントへのリンクです: http://docs.jquery.com/Core/jQuery.noConflict

于 2009-09-26T18:16:40.647 に答える