2

私は完全なjQuery初心者であり(Webコーディングの初心者もそうです)、どれだけ簡単にできるかわくわくしています。私はこれに完全に固執していますが、助けていただければ幸いです。

色見本のリストを含むulがあります。次に、表示と非表示でこれらをフィルタリングします。1つの見本にカーソルを合わせると、表示されている次の兄弟見本のクラスを変更する必要があります。これは私が何かを隠すまでそれを達成します:

$('+ li', this).toggleClass('swatchroll-sister');

これもそうです

$(this).next().toggleClass('swatchroll-sister');

ただし、ものが非表示になったら、次に表示される要素ではなく、非表示の要素のクラスを変更します。:visibleセレクターは私が必要としているものだと思いますが、どこにでも配置しようとしましたが、機能させることができません。私が試したいくつかのこと:

$('+ li:visible', this).next().toggleClass('swatchroll-sister');
$(this).next('li:visible').toggleClass('swatchroll-sister');
$('+ li', this).toggleClass('swatchroll-sister');
$('+ li', this).('item:visible').toggleClass('swatchroll-sister');

だから私の質問はおそらく「:Visibleセレクターをどこに置くのですか?」です。しかし、おそらくそれは最初から間違ったアプローチですか?ポインタをありがとう。

4

1 に答える 1

3

あなたの正確なコードを見ずに、私は次のようなものしか提案できません:

$('li').click(
    function(){
        var i = $(this).index('li:visible');
        var nextVisible = $(this).closest('ul').find('li:visible').eq(i+1);
        $(nextVisible).addClass('classNameToAdd');
    });

JSフィドルデモ

メソッドに渡されたセレクターに注意してください。このindex()メソッドは、セレクターによって返された要素(この場合は。)の中から現在の要素のインデックスを検索しますli:visible

参照:

于 2011-06-17T16:16:01.393 に答える