单击后,jQuery .click()可能不适用于setTime

时间:2012-03-18 13:52:10

标签: jquery

希望我能在这里得到一些帮助。所有这些JS和JQuery都比较新。

本质上我有一个JSQuery $('#name').click()事件,我想要被触发,然后停止,直到它再次获得一个命令再次激活。

我似乎无法让unbind功能起作用 - 虽然我甚至不确定这是否是我应该使用的东西!?!?

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

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

    });

(make .click() active again.

拔头发。可能很简单,但我担心我可能会失明。

任何帮助非常感谢

2 个答案:

答案 0 :(得分:2)

您也可以只测试点击声明中的条件。

var wasPressed = false;

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

或者您可以通过任何其他方式执行此操作,例如添加/删除类并将其用作标识符。或者正如你在开始时建议的那样,每次只删除事件 - 虽然这看起来像是一个更昂贵的选择imho。

答案 1 :(得分: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);