-2

宣言された関数がappend()メソッドによって作成された要素に適用されない理由を誰かに教えてもらえますか?要素では正常に機能しますが、上記の機能を使用して別の要素を追加すると、アクションは実行されませんか?

info_box var containsg divは関数を使用して閉じます$(".notification-close").click(function(){が、append()メソッドを使用してボックスを作成すると、機能しなくなります。

    $(document).ready(function () {

//setTimeout(function(){$(".notification-box").fadeOut("slow");}, 6000);
$(".notification-close").click(function(){
    $(".notification-box").fadeOut("slow");return false;
});


// AJAX
$(".lightbox_delete_button").easyconfirm({locale: { title: 'Delete', button: ['No','Yes']}});

$(".lightbox_delete_button").click(function () {

var pictid_lightbox = $(this).parent().find('#pictid_lightbox').val();
var thumb_container = $(this).parents('.thumb_container');
var tools_counter = $('body').find('#tools_lightbox_count').text();
var reduced_tools_counter = parseInt(tools_counter)-1;
var info_box = "<div class=\"notification-box notification-box-info\"><p>You don't have any images in your lightbox</p><a href=\"#\" class=\"notification-close notification-close-info\">x</a></div>";
$.ajax({
            url: "ajax.html",
            type: "POST",
            async:false,
            data: ({f:"test_ajax",pictid_lightbox:pictid_lightbox}),
            success: function(data){
            alert(data);
thumb_container.fadeOut("slow");
$($('body').find('#tools_lightbox_count')).replaceWith('<span id=\"tools_lightbox_count\">' + reduced_tools_counter.toString() + '</span>');
if(reduced_tools_counter == 0){
$('body').find('#center_column').append(info_box);
}else{
alert('not empty');
}
            }
});

return false;
});


});
4

2 に答える 2

1

デリゲートまたは使用してみてください。ページの読み込み時に追加されたコンテンツが存在しないため、現在のコードは機能していません。

于 2012-11-01T22:40:03.923 に答える
1

イベントハンドラーをバインドする時点では、動的要素はDOMに存在しないため、実際に存在する要素(委任イベントハンドラーとも呼ばれる)にイベントハンドラーをバインドする必要があります。

$('#center_column').on('click', '.notification-close', function(){
     $(".notification-box").fadeOut("slow");
});
于 2012-11-01T22:41:00.060 に答える