0

タイトルはわかりやすいと思います。ユーザーがメニュー項目をクリックすると、画面上の画像がフィルタリングされるようにする必要があります。これは、クリックされた要素の ID と同じクラスを持つ画像のみを表示することによって発生します。これまでに試したコードは次のとおりです。

var imgFilterBtn = $("nav > ul > li > ul > li > a");

imgFilterBtn.click(function() {
    $("img").fadeOut("fast");
    var fadeInClass = $(this).attr("id");

    $("img").hasClass(fadeInClass).fadeIn("fast");
});

また、画像をラッパーに入れて、子でフィルタリングしてみました:

var imgFilterBtn = $("nav > ul > li > ul > li > a");

imgFilterBtn.click(function() {
    $("img").fadeOut("fast");
    var fadeInClass = $(this).attr("id");

    $("#imgWrap").children("." + fadeInClass).fadeIn("fast");
}); 

しかし、これもうまくいきません!これについて何か助けはありますか?ありがとう。

</p>

4

1 に答える 1

1

.hasClass()jQueryコレクションではなくブール値を返します。セレクターでクラス名を直接使用できます。

 var fadeInClass = $(this).attr("id");
 $("img."+fadeInClass).fadeIn("fast");
于 2012-07-08T09:29:50.990 に答える