.addEventListener 和 .attachEvent 正确用法
.addEventListener and .attachEvent correct usage
我有一个计算简单的表单,我有一个侦听提交事件的.addEventListener
。这很好用,直到我发现IE7和IE8不支持此功能,而是使用自己的.attachEvent
,我也需要它在这两个浏览器中工作。
你可以在这里看到小提琴 http://jsfiddle.net/hbrovell/AGBnj/
我找到了很多解决方案,您可以在其中检查浏览器是否使用.addEventListener
或.attachEvent
但我无法理解如何使用它。
例如,我将如何正确地实现这段代码来挖掘?
function addEvent(element, eventName, callback) {
if (element.addEventListener) {
element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
element.attachEvent("on" + eventName, callback);
}}
这段代码中的元素,是我代码中的表单元素吗?事件名称是提交事件吗?
我无法在这个项目中使用任何库,所以我需要使用普通的javascript。
希望有人能给我一些关于如何做到这一点的指导。
var el = document.getElementById("my-el"),
action = function (e) { doStuff(); },
eventName = "click";
// normal browsers
el.addEventListener(eventName, action);
// IE < 9
el.attachEvent("on" + eventName, action);
知道了这一点,你应该能够看到addEvent
在做什么。
有一个非常大的,但在那里。
IE给你的回报是非常不同的。
虽然其他浏览器为您提供e
事件参数,但 IE 不会。
虽然其他浏览器this
单击/键入的元素等,但IE不会。
那addEvent
对此没有任何作用。
如果您只需要知道事件发生,那 100% 没问题。
如果您需要preventDefault
或stopPropagation
,或者您需要获取事件信息,那么该函数将不足以处理它。
相关文章:
- 原型和用法 Javascript
- 在IntelliJ IDEA中,如何将JS文件从“;查找用法“;使用TypeScript时的结果
- 限制npm依赖模块's require(隔离)的用法
- 引导工具提示用法,在搜索字段中
- 用于添加两个数字的javascript闭包的用法
- OnChange.attachEvent侦听器不工作
- javascript中不带转义字符串的${variable}用法
- 了解插件代码中$.each内部传递的参数的用法
- Chris Coyer中call()的用法'的自定义事件示例
- regex中连字符的这种用法有效吗
- 咕噜咕噜/咕噜咕噜源文件目标用法
- 不是 solr 查询中的条件用法
- Web Crypto API JWK 在 Python 中的用法
- YUI Compressor Maven Mojo缩小javascript的用法
- 包括外部javascript;不遵守闭包用法
- Javascript模块用法
- Javascript window.postmessage()帮助-don'我不了解用法
- javascript中for循环的用法
- 为Google Matrix指定API密钥API Javascript检索用法
- .addEventListener 和 .attachEvent 正确用法