当我的函数完成时,使用 JavaScript(或 jQuery)触发一个自定义事件
Fire a custom event with JavaScript (or jQuery) when my function finishes
我想触发并侦听我自己的自定义事件,而不是在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');
无偿现场示例 | 来源
或者为了完全断开与DOM的连接,有几个pub/sub jQuery插件,就像这个一样。
$('#foo').on('custom', function(event, param1, param2) {
alert(param1 + "'n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
来源: http://api.jquery.com/trigger/
相关文章:
- 如何在javascript中创建自定义事件
- 如何在d3.js中自定义事件侦听器
- jquery自定义事件混淆
- jquery可从自定义事件中排序
- 向ASP控件添加自定义事件
- 使用自定义数据属性或将数据绑定到处理程序来处理事件
- 在放置目标时,输入并离开自定义事件
- 处理角度自定义指令中的onReady事件
- 如何将自定义参数传递到FullCalendar事件提要
- AngularJS自定义过滤器未触发点击事件
- 加载自定义磁贴后的谷歌地图事件
- Chris Coyer中call()的用法'的自定义事件示例
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 如何获取 jQuery 以触发本机自定义事件处理程序
- 允许在自定义事件上“查找使用实例”的 IDE
- 如何禁用自定义复选框的单击事件
- 如何将 DOM 元素绑定到自定义 $.touchpress 事件
- 如何从视图中触发事件(自定义事件)并在 Ext JS 的控制器中处理它们
- 高图表-覆盖图例点击和悬停事件自定义逻辑
- 必应地图点击事件自定义信息框html