【发布时间】:2014-01-10 09:07:49
【问题描述】:
我想做这样的事情:
function('string', function2(){})
我让用户在string 参数中写入他想要的内容,然后执行function2。
关键就在这里:string 是一个事件监听器。当用户写click时,我要调用onClick(),当用户写mouse时我要调用onMouseOver等等。
我想用case 做点什么,但我怎样才能访问所有事件侦听器?
【问题讨论】:
-
简单的就是"on"+eventname;但是如果你想做更复杂的事情,你应该创建一个包含你希望用户使用的字符串并映射到你想要使用的字符串的映射,比如
{'mouse': 'onmouseover', 'click': 'onclick'},那么它只是一个简单的查找 -
除非您将参数传递给要调用的函数,否则您应该简单地使用
.addEventListener('eventName', function2),否则将function2()包装在匿名函数中:.addEventListener('eventName', function(){ function2(arg1,arg2); })。顺便说一句:eventTarget.addEventListener()。另外,最后,我可以问一下为什么你要这样做吗?这是一种有趣的方法,但我对它解决的问题很好奇(真的很好奇,而不是被动攻击“不要那样做!”的前奏) -
这与标准的
addEventListener()API 有何不同? -
是的,我想做这样的事情:将所有字符串映射到事件。但是如何访问所有事件?是否存储在类似表单的 DOM 数组中?
-
我想我误解了我的评论。您能否编辑您的问题以使其更清楚您的意思。也许是一些代码的具体例子?
标签: javascript dom listener dom-events