Javascript jquery-快乐点击器-查找绑定事件的回调
我将一些稍微复杂的功能绑定到单击事件Javascript jquery-快乐点击器-查找绑定事件的回调,javascript,jquery,Javascript,Jquery,我将一些稍微复杂的功能绑定到单击事件 $(someSelector)).bind('click', someFunction(a,b,c)); function somefunction(a,b,c) { return function() { // some logic $(anotherSelector).each(function() { // fade out with call back... $
$(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完成之前处理了新的单击事件
我想我正在寻找一些回调机制,确保在当前点击完成后处理新的点击。我可以给fadeIn添加一个回调,但我看不出我的逻辑对我有什么帮助
我也读过关于只要点击一次就解除组件绑定的内容(然后再重新绑定),但我不确定我会把它放在哪个逻辑之上
感谢您的建议:)您可以利用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事件绑定过程。如果我理解正确的话,.stop()函数可能会对您有所帮助:Thx,但是stop()只会取消正在进行的动画-这不是我在这里要找的
$(someSelector)).bind('click', someFunction(a,b,c));
var isWaiting = false;
function somefunction(a,b,c) {
if (!isWaiting) {
isWaiting = true;
/* useful stuff here */
isWaiting = false;
}
}