假设我想向函数传递参数。我听说应该通过在函数内部调用另一个函数来实现,像这样:
这会在控制台返回一个“未定义的错误”。所以我的函数没有名字吗?“whatever”不是它的名字吗?那么现在如何删除它?
我需要一种方法来分配一个事件侦听器并传递参数,然后稍后将其删除。我该怎么做?
编辑:
好的,是的,我不能引用“whatever”,因为它是内联编写的。但我被迫使用内联函数表达式的原因是我想传递参数。我想传递参数是因为我不想每次更改行为时都要定义一个新函数。如果我使用“on”属性上的文本定义事件侦听器,我可以轻松交换参数:
element.onClick("myFunc('do one thing')");
element.onClick("myFunc('do a different thing')");
如何使用addEventListener,在内联中,可移除且具有动态参数?
myElement.addEventListener("click",function whatever(event){
myFunk(event,"some argument");
},false);
但是如果我现在想要移除它呢?
myElement.removeEventListener("click",whatever,false);
var myElement = document.querySelector('div')
function myFunk(e,m){
console.log(e,m)
}
myElement.addEventListener("click",function whatever(event){
myFunk(event,"some argument")
},false)
myElement.removeEventListener("click", whatever, false)
<div></div>
我需要一种方法来分配一个事件侦听器并传递参数,然后稍后将其删除。我该怎么做?
编辑:
好的,是的,我不能引用“whatever”,因为它是内联编写的。但我被迫使用内联函数表达式的原因是我想传递参数。我想传递参数是因为我不想每次更改行为时都要定义一个新函数。如果我使用“on”属性上的文本定义事件侦听器,我可以轻松交换参数:
element.onClick("myFunc('do one thing')");
element.onClick("myFunc('do a different thing')");
如何使用addEventListener,在内联中,可移除且具有动态参数?
whatever
并不是一个函数,而是一个函数表达式,在调用myElement.addEventListener
函数后,whatever
就不再可用了。但你可以像这样在内部使用whatever
:function whatever(){...; whatever();}
- Grundy