我不想在 JS 中嵌套回调,而是想触发并监听我自己的自定义事件。我不需要或不想访问 DOM。下面是一个例子:

function doSomething(){
//...
$.trigger('finished-doSomething'); //fire the event 'finished-doSomething'
}

//when the event 'finished-doSomething' is fired -> execute the function in the second  param
$.live('finished-doSomething', function(){
   alert("I finished-doSomething");
});

是否可以使用普通的 javascript 代码或像 jQuery 这样的库来做到这一点?如果没有,避免嵌套回调的好方法是什么?

谢谢!

最佳答案

好吧,您可以在一些常见元素上使用自定义事件,例如 document.body

// Subscribe
$(document.body).on('nifty.event', function() {
    // Handle it
});

// Publish
$(document.body).trigger('nifty.event');

Gratuitous live example | source

或者为了完全断开与 DOM 的连接,有几个 pub/sub jQuery 插件 like this one

关于javascript - 当我的函数完成时,使用 javascript(或 jquery)触发自定义事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11164789/

10-12 13:06
查看更多