说我想制作一个名为'alertMeOnRemove'的小插件,这是一个自我解释。我希望它仅覆盖调用它的元素的remove()
函数。
$('a').alertMeOnRemove();
$('div').remove(); // no alert
$('a.subset-of-a').remove(); //alert
$('a').remove() //alert
我知道jQuery函数的一般覆盖既可行又简单。这可能吗?
答案 0 :(得分:2)
是的,这并不困难。
(function(){
var _remove = $.fn.remove;
$.fn.alertMeOnRemove = function(){
this.each(function(){
$.data(this, 'alertMeOnRemove', true);
});
};
$.fn.remove = function(){
this.each(function(){
if ($.data(this, 'alertMeOnRemove')) {
alert('removing item');
}
});
_remove.call(this);
};
})();
答案 1 :(得分:0)
我不确定我是否得到你,但你可以这样做:
var _oldRemove = $.fn.remove;
$.fn.remove = function() {
if(/* some condition */)
alert('foobar');
_oldRemove.apply(this, arguments);
};