1
A
回答
2
Yes,你可以有多个事件监听器,并且没有,使用多个属性是不正确的(请参阅我的评论)。
0
validator会告诉你它是否有效。我会告诉你,练习behavorial separation会更好。
+0
不,它不会,一个元素只能有一个给定属性的实例 – Quentin 2009-06-08 18:46:21
1
Here是如何正确连接多个处理程序数字醚一个很好的例子,工程无论是在符合标准的浏览器和IE浏览器:
/**
* Add events
* @param Object HTML Element
* @param string name of trigger
* @param string name of function to attach
* @param bool capture
*/
addEvent = function(el, evType, fn, useCapture) {
if (el.addEventListener) {
el.addEventListener(evType, fn, useCapture);
return true;
}
else if (el.attachEvent) {
var r = el.attachEvent('on' + evType, fn);
return r;
}
else {
el['on' + evType] = fn;
}
}
0
我认为这是不合法的标记的情况下,出现这种情况的工作在某些浏览器中。因此,它应该被认为是一些需要重构的代码。
正如Josh Stodola和David Dorward指出的那样,元素不能有多个相同属性的实例,并且W3C validator也会指出这一点。
但是,有些浏览器相当宽容,无论验证如何都会让事情顺利进行;但其他人不会,而且这些浏览器的用户将会遇到问题。基本上,你会发现自己处于奇怪的边缘情况和不受支持的行为:很难保证它在哪些浏览器中工作(我在Firefox 3中尝试了一个类似于你的片段并且失败了),因为它违反了规范;而且,由于它违反了规范,因此不能保证事件将以什么顺序触发,所以如果这很重要,则无法真正保证事件触发的顺序。
似乎有点清理是为了。
相关问题
- 1. 是否只有一个事件处理程序的所有对象的副本
- 2. HTML事件处理程序与React事件处理程序
- 3. 是否有可能在事件处理程序启动时追踪事件处理程序的顺序?
- 4. 是否有事件X的处理程序?
- 5. 有条件的事件处理程序
- 6. 是否有大量事件处理程序降低性能?
- 7. Java中是否有触摸板事件处理程序?
- 8. 没有事件处理程序的绑定事件。为什么它有效?
- 9. 在一个处理程序中处理所有事件?
- 10. 是否有会话超时a.k.a没有登录的symfony2事件/处理程序
- 11. 当事件处理程序没有完成时事件是否被触发?
- 12. VB.NET:即使没有事件处理程序,是否会引发事件?
- 13. QTP是否有任何事件处理程序或测试引擎事件?
- 14. 是否有这样的事,作为一个“所有” JavaScript错误处理程序?
- 15. 具有自定义html属性的JS事件处理程序
- 16. 在Java中处理事件:它是否需要空的事件处理程序
- 17. jQuery的。对()方法有多个事件处理程序和多个选择
- 18. GWT - 如何处理同一事件的多个处理程序
- 19. 是否有可能将处理程序绑定到jQuery效果?
- 20. 是否有涉及事件处理的单独线程?
- 21. 如何知道一个事件有多少事件处理程序?
- 22. 如何测试事件是否包含事件处理程序?
- 23. jQuery的多选 - 选择所有事件处理程序
- 24. c#多个事件的相同事件处理程序
- 25. 是否有太多的$(document).ready处理程序(IE)?
- 26. 创建的事件处理程序处理多个事件类型
- 27. 调用具有多个控件的控件事件处理程序
- 28. 是否可以将单个处理程序附加到多个事件?
- 29. 多个JavaScript处理程序是否可以注册一个事件?
- 30. 这是一个有效的Sinatra路线处理程序吗?
正如Alex的例子所显示的,添加多个事件监听器的方式并不是通过将多个onXXX属性设置为不同的值(这是无效的标记,验证器会告诉您这一点(请参阅Josh的回答)。在大多数浏览器上工作 – laginimaineb 2009-06-09 05:09:21