有时候我们开发项目时,会遇到事件重叠问题,例如一个div元素注册了一个点击事件,而div元素内的button元素也注册了点击事件,那么如果点击button元素的话button事件和div事件将同时触发,那么如何避免这种事情发生呢?或者说如何只让button产生点击它的事件而不让div也触发点击事件?这就是事件重叠问题,对于这个问题解决办法还是很容易的,直接上解决方法。
function stopBubbling(e) {//避免事件冲突
e = window.event || e;
if (e.stopPropagation) {
e.stopPropagation(); //阻止事件 冒泡传播
} else {
e.cancelBubble = true; //ie兼容
}
}
之后在button的点击事件中调用该方法就能避免事件重叠的问题了。
$("#btn_"+dataList[i].CPID001).click('click',function() {
console.log(itemId);
console.log(itemType);
stopBubbling(event);//阻塞其他重叠事件
});