Javascript:removeEventListener 不起作用
Javascript : removeEventListener doesn't work
我有一个第一个按钮,我在其中添加了一个事件侦听器来执行 foo 函数。
foo 函数只是在控制台中显示一个数字。
我有第二个按钮用于删除添加的事件侦听器。
这里是代码,非常简单:
<input type="button" value="Click here" id="button">
<input type="button" value="Remove Event Listener" onclick="removeEventListener();">
<script type="text/javascript">
number = 0;
//Function to display number in console :
function foo()
{
number = number+1;
console.log(number);
}
//The button :
button = document.getElementById("button");
//Add event listener to the button :
button.addEventListener("click", foo);
//Function to remove event listener :
function removeEventListener()
{
button.removeEventListener("click", foo);
}
</script>
你可以试试看:https://jsfiddle.net/6m8z8qgn/
但是当我点击第二个按钮移除事件监听器时,
添加到第一个按钮的事件侦听器不会被删除,因此当我单击第一个按钮时,控制台会再次显示数字。
一个想法?在此先感谢您。
将方法 removeEventListener 的名称更改为其他名称。否则引用javascript内部方法。
函数 renameThis()
removeEventListener
是 JavaScript 中的保留关键字。
试试别的。
<input type="button" value="Remove Event Listener" onclick="anotherName();">
<input type="button" value="Click here" id="button">
<script type="text/javascript">
number = 0;
//Function to display number in console :
function foo()
{
number = number+1;
console.log(number);
}
//The button :
button = document.getElementById("button");
//Add event listener to the button :
button.addEventListener("click", foo);
//Function to remove event listener :
function anotherName()
{
button.removeEventListener("click", foo);
}
我有一个第一个按钮,我在其中添加了一个事件侦听器来执行 foo 函数。 foo 函数只是在控制台中显示一个数字。
我有第二个按钮用于删除添加的事件侦听器。
这里是代码,非常简单:
<input type="button" value="Click here" id="button">
<input type="button" value="Remove Event Listener" onclick="removeEventListener();">
<script type="text/javascript">
number = 0;
//Function to display number in console :
function foo()
{
number = number+1;
console.log(number);
}
//The button :
button = document.getElementById("button");
//Add event listener to the button :
button.addEventListener("click", foo);
//Function to remove event listener :
function removeEventListener()
{
button.removeEventListener("click", foo);
}
</script>
你可以试试看:https://jsfiddle.net/6m8z8qgn/
但是当我点击第二个按钮移除事件监听器时, 添加到第一个按钮的事件侦听器不会被删除,因此当我单击第一个按钮时,控制台会再次显示数字。
一个想法?在此先感谢您。
将方法 removeEventListener 的名称更改为其他名称。否则引用javascript内部方法。
函数 renameThis()
removeEventListener
是 JavaScript 中的保留关键字。
试试别的。
<input type="button" value="Remove Event Listener" onclick="anotherName();">
<input type="button" value="Click here" id="button">
<script type="text/javascript">
number = 0;
//Function to display number in console :
function foo()
{
number = number+1;
console.log(number);
}
//The button :
button = document.getElementById("button");
//Add event listener to the button :
button.addEventListener("click", foo);
//Function to remove event listener :
function anotherName()
{
button.removeEventListener("click", foo);
}