1

そのため、クリックしたliの数を取得して、対応するページテキストを表示し、他のテキストを非表示にしようとしています。(#text1、#text2、#text3 などのラベルが付けられています...)、しかし、以下のコードは私のために何もしていません。

助けていただければ幸いです。

var j = 0;
$(".gallery li").each(function () {
    j++;

    $(".gallery li").click(function () {
        var num = $(this).index() + 1;
        $('#text' + num).addClass('currentpage');
        $('#text' + num).siblings().removeClass('currentpage');
    });
});
4

3 に答える 3

2

試す

var num = $('li').index(this) + 1;

それ以外の

var num = $(this).index() + 1;

そして、各ループを削除します

$(".gallery li").click(function () {
     var num = $('.gallery li').index(this) + 1;
     $('#text' + num).addClass('currentpage');
     $('#text' + num).siblings().removeClass('currentpage');
});

十分なはずです

indexそしてより良い..最初にを使用する必要はありません

$(".gallery li").click(function () {
    $(this).addClass('currentpage');
    $(this).siblings().removeClass('currentpage');
});

this コンテキストは、選択されている現在の li に対応するため、コードで直接使用できます。

于 2013-06-27T19:40:43.107 に答える
0

あなたが何をしているのかわかりません...しかし、あなたはこれを行うことができます:

indexvalueのクロージャのパラメータとしてスローしますeach。例: - その後、代わりに$(".gallery li").each( function(index, value){使用できますindexj

于 2013-06-27T19:41:53.393 に答える