2017-04-13 111 views
0

我嘗試使用JavaScript與其他onclick事件替換onclick事件:如何在添加新的onClick事件之前清除onClick?

<button id='myButton' onClick=""/> 

OLD onClick事件:

$('#myButton').click(function(){ 
    alert('1'); 
}); 

,然後我做同樣的那樣,改變的價值警惕,我這樣做:

$('#myButton').click(function(){ 
    alert('2'); 
}); 

上面的方法的結果是警報顯示1和2兩次。我想 只有2必須顯示(我用alert('2')替換alert('1'); 不添加另一個警報。如何解決我的代碼?

+0

爲什麼不只是改變你的警惕.....我不認爲我理解你的問題....也許你正在尋找一些解除事件的東西...因爲你使用jQuery這裏是http://api.jquery.com/unbind/ – NewToJS

+0

@NewToJS的相關鏈接:所以添加$('#myButton')。unbind();在添加新的onclick事件之前?如果你的意思是你可以把它作爲答案。而且我會接受爲正確的答案導致你的答案對我很好。謝謝 – Michael

回答

0

最後問題已解決。我使用的方法解除綁定像從這裏解釋一下:

http://api.jquery.com/unbind/ 

對於我的情況:

$('#myButton').unbind("click"); 

謝謝。

2

試試這個:

$(document).off('click', '#myButton').on('click', '#myButton', function(){ 
    alert('2'); 
}); 

它將以前解除綁定事件偵聽器,並添加新的。

+0

如果我使用$('#myButton')。unbind(); ?哪一個更好的方法來解除綁定? – Michael

0

你有2個jQuery事件監聽器監聽相同的元素。他們知道元素的id,這對他們的工作已經足夠了。

我想說,他們不關心onClick

你應該代碼的兩個JS功能,但不能jQuery的事件偵聽器。

<button id='id' onClick="choose function"/> 

function myFunction1() { 
    //your code 
} 

function myFunction2() { 
    //same 
} 
相關問題