div叠加,点击时,应该如何激发顶层DIV的JS事件?
需要阻止JS冒泡,代码如下:
function white(event){
var e = event || window.event;
alert("white");
if (e && e.stopPropagation){
e.stopPropagation();
}else{
e.cancelBubble=true;//兼容IE } }<div> 标签定义 HTML 文档中的分隔(DIVision)或部分(section)。div属于web前端的学习内容,其中<div> 标签常用于组合块级元素,以便通过样式表来对这些元素进行格式化。<div> 可定义文档中的分区或节(division/section)。<div> 标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。
当我们使用 CSS-P 的时候, 我们主要把它用在 DIV(division)tag 上。当你把文字,图像,或其他的放在 DIV 中,它可称作为“DIV block”,或“DIV element”或“CSS-layer”,或干脆叫“layer”。而中文我们把它称作“层次”。所以当你以后看到这些名词的时候,你就知道它们是指一段在 DIV 中的 HTML。
如何激发顶层DIV的JS事件,只需阻止JS冒泡。方法是在function里加上stopevt()。具体代码如下:
function getEvent() {
if (document.all) {
return window.event; //如果是ie
}
func = getEvent.caller;
while (func != null) {
var arg0 = func.arguments[0];
if (arg0) {
if ((arg0.constructor == Event || arg0.constructor == MouseEvent) || (typeof(arg0) == "object" && arg0.preventDefault && arg0.stopPropagation)) {
return arg0;
}
}
func = func.caller;
}
return null;
}
function stopevt() {
var ev = getEvent();
if (ev.stopPropagation) {
ev.stopPropagation();
} else if (window.ev) {
window.ev.cancelBubble = true;
}