0

検索ブロックを複製する機能を持つページに取り組んでいます。これらの追加の検索ブロックも削除できる必要があります。削除するためにクリック イベントが関連付けられているリンクがあります。これは最初のインスタンスでは機能するようですが、それ以降の複製されたすべてのインスタンスは機能したくないようです。

これが機能しない理由の説明はありますか? 私はまだjqueryにかなり慣れていません。

これはコードです:

$('.k-item').click(function(){

        var $searchblock = $('#search-block').html();
        var $addsearchblock = '<div class="additional-search-block"></div>';
        $('.additional-search-block').html($searchblock).attr('class', 'added-search').append($addsearchblock);
    });

$('.remove').click(function(e){
                e.preventDefault();
                //alert('hello');
                $(this).parent().hide();
            });

これは私が取り組んでいるページです:

http://www.mniac.com/ELRN5/search-template.html

4

2 に答える 2

1

などを使用してバインドすると、バインド時.click()にDOMに存在する要素にのみバインドされます。委任されたイベントを動的に追加された要素で機能させる場合は、委任されたイベントで.on()を使用する必要があります。

$(document).on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().hide();
});

すべてのターゲット要素に近い親要素がある場合は、document代わりにその要素にバインドする必要があります。サンプルページを考えると:

$('#content').on('click', '.remove', function(e){
    e.preventDefault();
    $(this).parent().hide();
});
于 2013-03-14T23:10:27.183 に答える
1

魚が必要な場合は、次を使用します。

$('<selector of parent of elements you want to attach events to>').on('click', '.remove', function(e) {
    e.preventDefault();
    $(this).parent().hide();
})

釣り竿が必要な場合は、イベント委任についてお読みください。

于 2013-03-14T23:12:04.003 に答える