快乐答题器 - 在绑定事件上查找回调
happy clicker - looking for callback on bound event
>我正在将一些稍微复杂的功能绑定到单击事件
$(someSelector)).bind('click', someFunction(a,b,c));
function somefunction(a,b,c) {
return function() {
// some logic
$(anotherSelector).each(function() {
// fade out with call back...
$(this).fadeOut("fast", function() {
// TODO: add callback here???
$(contentSelector).fadeIn("fast");
})
})
}
}
问题在于,一系列快速点击会导致不一致的淡出/淡入行为。我假设在当前 fadeIn 完成之前处理新的点击事件。
我想我正在寻找一些回调机制,以确保在当前点击完成后处理新点击。我可以添加一个回调来淡入,但我看不出我的逻辑会在那里帮助我......
我还读过有关只要处理单击(然后重新绑定它们)就取消绑定组件的信息,但同样 - 我不确定我会把它放在哪个逻辑之上。
感谢您的建议:)
你可以
利用jQuery的.on
和.off
方法:
$someElement = $(someSelector)
$someElement.on('click', someFunction(a, b, c));
function someFunction(a, b, c) {
// detach the event handler
$someElement.off('click', someFunction);
/* useful stuff here */
// reattach the event handler
$someElement.on('click', someFunction(a, b, c));
}
我缓存了jQuery元素的地方。
或者,您可以在回调范围之外创建一个变量,在回调中检查并设置其值:
$(someSelector)).bind('click', someFunction(a,b,c));
var isWaiting = false;
function somefunction(a,b,c) {
if (!isWaiting) {
isWaiting = true;
/* useful stuff here */
isWaiting = false;
}
}
我推荐.on
/.off
方法,因为它更直接地处理jQuery事件绑定过程。
相关文章:
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 查找带有边框的HTML5 Canvas(点击)事件的坐标
- 在JQuery事件中查找父元素
- 查找将 onclick 事件分配给节点的代码
- 如何将查找事件发送到嵌入了 SWFObject 2.2 的播放器
- 允许在自定义事件上“查找使用实例”的 IDE
- 如何查找触发或处理事件的 Javascript
- 如何查找特定事件上已执行的函数名称
- 用于查找基于时间的事件的最佳Javascript算法
- 如何查找jquery或javascript事件从哪个文件发生
- 如何查找已添加自定义事件侦听器的位置
- 如何从许多其他输入中查找触发键关闭事件的特定输入框
- 使用 Jquery 查找冒泡事件中的挂起事件或最后一个事件
- 如何使用 JavaScript 在 DOM 节点上查找事件侦听器
- 如何查找容器内的所有事件并委派它们
- 基于子事件查找父元素
- 通过侦听自定义事件 (JavaScript) 来查找动态生成的元素
- 用于查找重叠事件/时间的算法
- 使用此在点击事件中查找 LI 的文本
- 查找绑定在不存在元素上的事件