-1

これは簡単だと確信していますが、これを何百万回も繰り返しましたが、以下を機能させる方法がわかりません。以前は、まったく問題なく動作する live() を使用していました。最新のjQueryで「オン」に移行すると、機能しなくなります。以下は私のコードの簡略版です。キーアップ時に ajax 呼び出し (検索) からクラス「結果」を持つアイテムのリストを返す検索フィールドがあります。次に、これらの返された要素をターゲットにしたいと思います。

$("input#search").on("keyup", function(e) {
    // Set Timeout
    clearTimeout($.data(this, 'timer'));

    // Set Search String
    var search_string = $(this).val();

    // Do Search
    if (search_string == '') {
        $("ul#results").fadeOut();
    }else{
        $("ul#results").fadeIn();
        $(this).data('timer', setTimeout(search, 100));
    };

});
$("li.result").on("click", function(e) {
    $(".selected").removeClass("selected");
    $(this).addClass("selected");
});
4

1 に答える 1

1

これらの要素が動的に作成されている場合 (そのように聞こえます)、イベントを既知の親にアタッチし、それに応じてフィルタリングする必要があります。

$("body").on("click", 'li.result', function(e) {
    $(".selected").removeClass("selected");
    $(this).addClass("selected");
});
于 2013-09-10T00:02:13.307 に答える