element.event和element.setAttribute(event,handler)之间的区别

时间:2011-03-15 11:21:35

标签: javascript javascript-events

对于动态创建的元素,我注意到element.setAttribute(onClick,myFunction)在IE中无法正常工作,而element.onclick = myFunction适用于所有浏览器。除了这种浏览器差异之外,还有任何功能差异吗?

1 个答案:

答案 0 :(得分:2)

理论上,setAttribute接受一个字符串并将其分配给一个属性,然后将其映射到任何关联的DOM属性。在IE 7及更低版本(以及在IE 7兼容模式和Quirks模式下的IE 8中),它直接为同名的DOM属性赋值(当属性需要字符串以外的其他内容时,将其区分大小写并且无效值)。

onfoo系列DOM属性需要一个函数。

通常首选使用attachEventListener和friends,并使用抽象层(例如由YUI,jQuery等提供)来分配值。这通常更容易。这些库还倾向于包含解决内存泄漏相关错误的功能。