2012-03-18 84 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);