我正在尋找一種漂亮的方式來處理一個元素的附加/移除事件,而不是手動觸發事件或某種類型的東西。jQuery UL追加事件?
像這樣的事情將是驚人的:提前
$('#id').on("append", function() { ... }
謝謝!
我正在尋找一種漂亮的方式來處理一個元素的附加/移除事件,而不是手動觸發事件或某種類型的東西。jQuery UL追加事件?
像這樣的事情將是驚人的:提前
$('#id').on("append", function() { ... }
謝謝!
如說,在評論,你可以觸發一個append
函數是:https://stackoverflow.com/a/7167210/2324107
但因爲刪除是有點不同,因爲:
(function($) {
var origAppend = $.fn.append;
$.fn.append = function() {
return origAppend.apply(this, arguments).trigger("append");
};
})(jQuery);
$("div").bind("append", function() { alert('Hello, world!'); });
$("div").append("<span>");
此代碼是從這個答案取沒有任何參數,您將需要定位元素的父元素。我之前修改了一些代碼並得到了這個結果:
var origRemove = $.fn.remove;
$.fn.remove = function() {
if(arguments.length){
return origRemove.apply(this, arguments).trigger("remove");
}else{
var $parent = this.parent();
console.log(this)
origRemove.apply(this, arguments);
$parent.trigger('remove');
return this
}
};
如果有參數,它會在選定的元素上觸發。例如,$('body').remove('div');
將在body
上觸發remove
事件。但是如果你寫$('div').remove();
,它會觸發div
的父項。
我做了一個小提琴,一起來看看:http://jsfiddle.net/ZxdU3/
事件監聽器將append
和remove
。它不會觸發你是否使用任何其他DOM插入功能(after
,before
或甚至appendTo
)。
這是一個很棒的迴應,幾乎解決了我的問題。非常感謝好先生! –
被接受的回答非常有趣,但我一直無法使它爲刪除事件工作,照顧幫助我呢? :) –