0

クリック関数で特定の div の次のインスタンスをターゲットにしようとしています。
ここに jsfiddle があります: http://jsfiddle.net/wUEkE/1/
jQuery:

$(document).ready(function(){

 $(".listings-item").click(function() {
 $('.hidden').next($('.hidden').removeClass('hidden').addClass('preview-listing').hide().delay(400).fadeIn("slow"));
 $('#listings-wrap').masonry('reload');
 });

});

だから私が達成しようとしているのは、をクリックし.listing-itemて次のインスタンスをターゲットにし.hidden、クラスを変更して石積みグリッドに表示することです。ただし、現在、クリック.hiddenすると、関連する次のインスタンスだけでなく、両方のインスタンスが表示されます。これがなぜなのかわかりません。すぐにこの関連する div にコンテンツを追加しますが、今のところ、これを機能させようとしているだけですが、できません。

4

1 に答える 1

1

nextAllこれには、次のすべての兄弟を返す関数を使用できます。最初の非表示要素のセレクターを追加すると、クリックされた に関連する次の非表示要素が取得されdivます。

このような:

$(this).nextAll('.hidden:first')

あなたの例で完全に使用すると、次のようになります。

$(".listings-item").click(function() {
    $(this).nextAll('.hidden:first').removeClass('hidden').addClass('preview-listing').hide().delay(400).fadeIn("slow");
    $('#listings-wrap').masonry('reload');
});

これが更新された例です

于 2013-03-15T11:39:57.493 に答える