2011-03-15 31 views
0

对于动态创建的元素,我注意到element.setAttribute(onClick,myFunction)在IE中不能正常工作,而element.onclick = myFunction在所有浏览器中都能正常工作。除此浏览器差异外,是否还有功能差异?element.event和element.setAttribute(event,handler)之间的区别

+0

http://webbugtrack.blogspot.com/2007/08/bug-242-setattribute-doesnt-always-work.html – epascarello 2011-03-15 12:08:40

回答

2

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

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

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