DOM-Element特定的功能覆盖或功能

时间:2011-01-05 14:20:23

标签: jquery

说我想制作一个名为'alertMeOnRemove'的小插件,这是一个自我解释。我希望它仅覆盖调用它的元素的remove()函数。

$('a').alertMeOnRemove();
$('div').remove(); // no alert
$('a.subset-of-a').remove(); //alert
$('a').remove() //alert

我知道jQuery函数的一般覆盖既可行又简单。这可能吗?

2 个答案:

答案 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);
};