创建将在第一次触发后自动执行回调的事件侦听器
Create event listener that will automatically execute callbacks after first fire
我想创建一个一次性事件侦听器,它将在事件第一次触发后立即执行回调。
main.js: (loaded first thing)
$(document).one('plugins_loaded', displayMenu);
plugins.js: (loaded some time after main.js)
$(document).trigger('plugins_loaded');
checkout.js: (loaded asynchronously or immediately after main.js)
$(document).one('plugins_loaded', displayCart);
我希望displayCart
立即执行,如果plugins_loaded
事件之前已经触发,如果没有,那么displayCart
应该在displayMenu
之后调用,当plugins_loaded
事件触发时。
您要找的是
- 一个承诺,使用
$.Deferred
或 创建 - 带有
once
和memory
标志的$.Callbacks
列表。
存储在某个全局变量中,最好存储在应用程序对象的命名空间中。你只需要初始化它一次,然后你可以随时随地添加回调,并在以后的某个时候触发它们。
您不能真正使用在$(document)
上触发的自定义事件,因为过去的事件是不可观察的
相关文章:
- 如何在`window.open`之后执行回调
- 带有Spring的$.getJSON未执行回调
- TypeError:执行回调时,回调不是函数
- Google API 的客户端库不会执行回调
- 调用消费方法后,如何在分配回调时执行回调
- 仅在堆栈中的最后一个执行回调
- 在组合框筛选后执行回调网格视图
- 在循环完成 nodejs 请求之前执行回调
- 通过AjaxForm提交图像并执行回调
- 无法在模块中执行回调,使用 Node-Cron导出对象
- 使用递归函数按顺序执行多个 ajax 请求,并在所有请求完成后执行回调函数
- 如何从对象构造函数执行回调
- 在 modernizr/yepnope 加载完所有文件后执行回调
- 在节点中执行回调
- Javascript 数组映射“出现”以对缺少的元素执行回调
- 如何在调用它的函数结束时执行回调
- 对多个元素执行回调函数
- JavaScript原生Promise对两个结果执行回调
- jquery中未执行回调函数
- 如何在循环中的所有AJAX请求完成后执行回调