我有一個文本輸入,我添加了一個事件監聽器。 此事件偵聽器通過onkeyup執行匿名函數。 這個匿名函數包含一個foo函數。 這個foo函數有一個參數number
用於在控制檯中顯示數字。removeEventListener和帶參數的匿名函數
而且我有一個按鈕用於刪除添加的事件偵聽器。 但是,當我點擊這個按鈕並輸入文本輸入時,事件偵聽器不會被刪除,所以foo函數會在控制檯中再次顯示數字。
這裏的代碼,很簡單:
<input type="text" value="" id="input_text">
<input type="button" value="Remove Event Listener" onclick="deleteEventListener();">
<script type="text/javascript">
number = 0;
//Function to display number in console :
function foo(arg_number)
{
number = arg_number+1;
console.log(number);
}
//The text input :
input_text = document.getElementById("input_text");
//Add event listener to the text input :
input_text.addEventListener("keyup", function(){foo(number);}, false);
//Function to remove event listener :
function deleteEventListener()
{
input_text.removeEventListener("keyup", function(){foo(number);}, false);
}
,您可以嘗試:https://jsfiddle.net/5LtmLzqy/
你有一個想法?預先感謝你,親切。
謝謝您的回覆。如何使我的匿名外部函數? – totoaussi
在函數foo之後加上'function foonumber(){foo(number);}'。 –
非常感謝,這是一個聰明的解決方案!解決了對你的感謝。 – totoaussi