2014-09-21 84 views
-4
function myfunction(){ 
    $('button').click(function(){ 
     alert(); 
    }); 
} 

myfunction(); 

$('#x').off('click', myfunction);//click disable myfunction(); 

<button></button> 
<span id='x'></span> 

我需要禁用功能,我已經嘗試過的jQuery,但它不工作jQuery的禁用功能

誰能告訴我怎麼樣?以及如何再次啓用?

+2

你想要什麼到底是什麼?從您的描述中不清楚。 – 2014-09-21 20:09:43

+0

當#x點擊,禁用myfunction() – Ben 2014-09-21 20:10:15

+0

什麼是'#x'',你試圖禁用哪個函數?你想切換'點擊'處理函數嗎? – ne1410s 2014-09-21 20:11:16

回答

2

到底什麼,你想到這個做?:

$('#x').off('click', myfunction); 

假設一下,如果#xbutton一個子集,你從來沒有真正設置myfunction在第一位置上button的處理程序。您可以設置一個匿名函數:

$('button').click(function(){ 
    alert(); 
}); 

如果你想爲「禁用」該功能(即刪除您元素的單擊處理程序),然後使它成爲一個非匿名函數和刪除的處理程序:

function myfunction() { 
    alert(); 
} 

$('button').on('click', myfunction); 

$('#x').off('click', myfunction); 

或者,如果你只是打算做一次,並試圖設置不同的是一個所有元素的處理,只是從你選擇忽略它:

$('button').not('#x').on('click', myfunction); 
0

添加一個變量,如isDisabled = false; 在MyFunction()的開頭檢查該變量。 並在#x點擊時將該變量設置爲true。