0

HTML5から受け取った2つのデータを取得し、クリック関数とその中の関数で使用したいと思います。

問題が発生しているので、これまでのコードは次のとおりです。

var test = [];

// This is a div class .quiz_list_row the ids are counted as #1 #2 #3...
$(".quiz_list_row").each(function(index){
    // Gets the data necessary
    //  It comes from data-quizlist-id (HTML5)
    $quiz_list_id = $(this).eq(index).data("quizlistId");

    //  It comes from data-quizlevel-reached (HTML5)
    $quiz_level_reached = $(this).eq(index).data("quizlevelReached");

    test[index] = $quiz_list_id;

    // testing
    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);

    // click functions
    $(this).click(function(){

        // bla bla
        // alert(test[index]) ???
    });
});
4

2 に答える 2

1

あなたは誤用しています.eq()。これを試してください(私はへの呼び出しを削除しました.eq()):

var test = [];

    // This is a div class .quiz_list_row the ids (inside it) are counted as #1 #2 #3...
$(".quiz_list_row").each(function(index){

    // Gets the data necessary
               //  It comes from data-quizlist-id (HTML5)
    $quiz_list_id = $(this).data("quizlistId");
               //  It comes from data-quizlevel-reached (HTML5)
    $quiz_level_reached = $(this).data("quizlevelReached");

    test[index] = $quiz_list_id;

    // testing
    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);

    // click functions
    $(this).click(function(){

          // bla bla
          // alert(test[index]) ???
    });
});

あなたはこれが欲しいかもしれません:

$(".quiz_list_row").click(function(){
    var $quiz_list_id = $(this).data("quizlistId");
    var $quiz_level_reached = $(this).data("quizlevelReached");

    alert("quiz_list_id: " +$quiz_list_id);
    alert("level: "+$quiz_level_reached);
});
于 2012-12-27T19:16:13.843 に答える
0

クリックイベントの周りにクロージャーを使用する

    // testing
    alert("quiz_list_id: " + $quiz_list_id);
    alert("level: " + $quiz_level_reached);

    // click functions
    (function(num) {
        $(this).click(function() {

            alert(test[num]) ? ? ?
        });
    })(index);

});​
于 2012-12-27T19:15:06.417 に答える