触发自定义jQuery事件并延迟它

时间:2014-12-09 12:32:31

标签: javascript jquery

我想触发从DOM中删除元素的事件。遗憾的是,我必须使用原始.remove(),因为它是从外部脚本调用的。所以我扩展了jQuery以捕获事件:

var oldRemove = $.fn.remove;
$.fn.remove = function(){
    this.trigger('remove');
    return oldRemove.apply(this, arguments);
};

这很好用。我可以这样使用它:

$('ul').find('li').on('remove', function(e){
    console.log('EVENT REGGED');
});

我想使用此代码突出显示元素的删除。示例:将元素的颜色设置为红色,等待2秒然后将其删除。

最优雅的方法是什么?我已经尝试过e.preventDefault()e.stopPropagation或者从触发器返回一些内容,但没有任何效果。

这是一个小提琴,所以你可以测试它:http://jsfiddle.net/xahthnjz/

首先要突出显示元素然后延迟删除,我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以在自定义jQuery函数中使用setTimeout来处理应用颜色更改后项目的删除。我在这里做了一个例子:http://jsfiddle.net/mkjj94m1/2/

我已将该函数重命名为deleteItem,因为remove是现有的jQuery函数。