繁体   English   中英

将事件处理程序设置为DOM对象

[英]Setting event handlers to DOM objects

我一直在寻找附加DOM事件的最佳方法,以避免浏览器兼容性问题,并发现Mozilla开发人员网站指出:

旧的方法是像这样分配它:

 document.getElementById('cupcakeButton').onclick = getACupcake; 

如上所述,事件对象可以是全局对象或参数。 此方法可能有问题,不是首选方法,但它仍然有效,并且许多人仍在使用它。

这指的是什么类型的问题?

我能想到的最大问题是,它不允许通过执行另一个.onclick = fn;分配多个点击处理程序.onclick = fn; 您基本上取消了先前处理程序的绑定(如果有)。

即使这神奇地起作用了,您也无法注销特定的处理程序。 全部或全无。

已经提到了最明显的一个, 它将替换先前分配的处理程序

document.getElementById('id')应该在所有浏览器中都可以使用,除了真正的旧浏览器Netscape 4-IE 4- )以外 ,您应该分别使用document.layers['id']document.all[id]

IE 5 up to IE 7 另一个问题是,它们还将返回name='id'的元素,而不是仅返回id='id'的元素。 那真的会让你不知所措。

看一下jQuery,了解一种附加DOM事件处理程序以避免浏览器兼容性问题的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM