希望我能在这里得到一些帮助。所有这些JS和JQuery都比较新。
本质上我有一个JSQuery $('#name').click()
事件,我想要被触发,然后停止,直到它再次获得一个命令再次激活。
我似乎无法让unbind功能起作用 - 虽然我甚至不确定这是否是我应该使用的东西!?!?
$("#services").click (function(){
*bunch of code to run slideshow* (disable click throughout this period)
});
(make .click() active again.
拔头发。可能很简单,但我担心我可能会失明。
任何帮助非常感谢
答案 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);