本文介绍了JavaScript中事件委托的用法,通过封装addEvent和delegateEvent函数,实现了在父元素上监听子元素事件的功能。代码兼容addEventListener和attachEvent,适用于IE8+及现代浏览器,有助于优化DOM性能。
JavaScript事件委托实现原理与代码示例
本文通过具体实例解析JavaScript中事件委托的应用方式,旨在为开发者提供实用的参考方案。
var addEvent = function (elem, eventType, func) {
if ( elem.addEventListener )
addEvent = function (elem, eventType, func) {
elem.addEventListener(eventType, func, false);
};
else if ( elem.attachEvent )
addEvent = function (elem, eventType, func) {
elem.attachEvent('on' + eventType, func);
};
addEvent(elem, eventType, func);
};
var delegateEvent = function (elem, childElems, eventType, func, args) {
addEvent(elem, eventType, function (e) {
var evt = e || window.event;
var elem = evt.target || evt.srcElement;
if ( elem.nodeName.toLowerCase() == childElems.toLowerCase() ) {
func(elem, args);
}
});
};
希望上述关于JavaScript程序设计的内容能对大家有所帮助。