2012-03-18 55 views
0

setTime后希望我能在这里得到一些帮助。所有这些JS和JQuery相对较新。JQuery .click()可点击后点击

实质上,我有一个JSQuery $('#name').click()事件,我想被解雇,然后暂停,直到它得到一个命令再次变为活动。

我似乎无法得到取消绑定功能的工作 - 虽然我甚至不知道,如果这是我应该使用的!?!?

$("#services").click (function(){ 

    *bunch of code to run slideshow* (disable click throughout this period) 

    }); 

(make .click() active again. 

拔出头发。可能很简单,但担心我可能会变得雪盲。

任何帮助非常赞赏

+0

你能证明你正在使用的代码“解除绑定“点击事件请求? – Robbie 2012-03-18 13:55:42

回答

2

你也可以只测试您的点击语句中的条件。

var wasPressed = false; 

$("#myObj").click(function(){ 
if(!wasPressed){ 
    // Allow click 
    wasPressed = true; 
} 
}); 

或者你可以任何其他方式做到这一点,比如添加/删除一个类并将其用作标识符。或者像您在开始时所建议的那样,只是每次移除活动 - 尽管这看起来像是一种更昂贵的选择。

+0

+1。这通常是要去的方法 - 处理程序中的if语句检查控件是否启用。绝对比解除绑定,然后重新绑定更好... – maxedison 2012-03-18 13:58:23

0

虽然我真的认为Shai Mishali的答案是要走的路,如果你绝对必须解除绑定/重新绑定这应该做的伎俩:

function runSlideShow() { 
    $("#services").unbind('click'); //unbind the click event. Avoiding $(this) as other events might possibly call this function 
    //bunch of code to run slideshow 
    $("#services").click(runSlideShow); //slideshow is not presumably over, so rebind event. 
} 
$("#services").click(runSlideShow);