Ajax を介していくつかの要素を div にロードし、次のようなイベントを追加しています。
$('.zoom-container').on('touchmove click scroll mousedown mousewheel', zoom.userEvent)
私のhtml:
<div id="Overlay"></div>
いくつかのコンテンツを作成するための私のコード:
$(".full_screen_icon").on({ //delegation
click: function(evt) {
var my_html ="zoom prtty▲thngs";
var colWidth= $(".block-wrap[data-colspan='2']").eq(0).outerWidth() || "300px";
//content div erstellen
$("<div>", {
id: "detail_content",
css: {
height:colWidth,
width:colWidth,
"margin-top":-colWidth/2,
"margin-left":-colWidth/2
},
html: my_html
})
.appendTo("#Overlay");
//content holen via ajax
$.get("http://www.yxz.de/products/"+ t +".php", function( html ) {
$("#detail_content").html(html);
}, 'html');
}
.. add zoom-container with some events like above
});
オーバーレイを閉じるには、次のようにします。
$("#Overlay").click(function (e) {
$(this).find('#detail_content').empty().remove();
});
イベントが添付された要素を削除すると、イベントもなくなるといつも思っていました。
しかし、ここでは、同じ名前の要素をクリックしてロードし、同じ名前のイベントを添付しています。
div.element を削除した後もイベントが残っていることがわかります。これは私のコードの問題ですか、それとも通常の動作ですか?
私は今不安です。イベントは要素で削除されますか?