1

私の検索バーの 1 つで、キーアップ時に div に別のファイルの内容が読み込まれます。

<input type='text' value='search' id='search' />

このタスクの私の JS コードは次のとおりです。

$("#search").keyup(function(){  
        var search = $(this).val(); 
        var url = "model/quickpicks_backend.php"; 
        var league = $('#league_form').val();
        var position = $('#compose').val();
        var data = "search="+ search +"&league="+ league +"&position="+ position;
        $('#load').load(url, data);
    });

すべての URL パラメーターは効果的に model/quickpicks_backend.php に渡され、渡される 3 つのパラメーターの値に基づいて、PHP は 0 から 5 までの結果をエコーアウトします。エコーアウトされるものはすべて、「結果」のクラスの の中にラップされます。JSコードもあります。それは次のとおりです。

$('.sky').click(function(){
        var num = $('#num').text();
        var num_trim = num.trim();
        var new_num = Number(num) + Number(1);
        $('#num').text(new_num);
        var id = $(this).attr('id');
        var player_id = Number(id) - Number(5);
        var league = $(this).attr('title');

        $.ajax({  
            type: 'GET',  
            url: 'model/quickpicks_list.php',  
            data: 'num='+ num +'&player_id='+ player_id +'&league='+ league,
            dataType: 'JSON',
            success: function(data)
            {  
                $.parseJSON(data);

                $('#'+ id).fadeOut('fast');
                $('#search').val('');
                $('#num').text(new_num);    
                $('#'+ num_trim).html(data.value);

                if(num == 5)
                {
                      alert("done");
                }
            }
        });
    });

問題は、.sky がクリックされるたびに、クリックされた最新の要素からのデータが収集されないことです。むしろ、h1.sky が最初にクリックされたときからすべて同じ情報です。多分使ってると思った

$('.sky').each(function(index) { 
     $(this).click(function(){

    });
});

代わりに動作します。しかし、そうではありませんでした。使用する

$('.sky').live();

うまくいきましたが、5回目のクリック(アラートをトリガーするはずのクリック)で、複数回アラートが表示されます。

実際の例はここにあります

4

2 に答える 2

0

構文は

$('.sky').live("click",function(
   ........................
));

これが問題かもしれません

于 2013-02-26T11:02:30.827 に答える
0

alert ステートメントの直後に break ステートメントを使用して、ループから抜け出すようにしてください。

于 2013-02-26T11:03:11.657 に答える