87,922
社区成员
发帖
与我相关
我的任务
分享
<div style="width:100px; height:100px; background-color:#CCC;" onclick="alert(1)" >
<div style="width:50px; height:50px; background-color:#C11;" onclick="event.stopPropagation?event.stopPropagation():(event.cancelBubble=true);">
</div>
</div>
而且捕获也解析不了从外面div拖到里面div也会触发onclick
我觉得根本的问题是只要点击是在对象内部包括内部其他对象内完成就会触发onclick
<div style="width:100px; height:100px; background-color:#CCC;" onclick="alert(1)" >
<div style=" height:50px; background-color:#C11;" >
</div>
<div style=" height:50px; background-color:#111;" >
</div>
</div>
<div style="width:100px; height:100px; background-color:#CCC;" onmousemove="document.getElementById('t').innerHTML+='1';">
<div style="width:50px; height:50px; background-color:#C11;" onmousemove="event.stopPropagation?event.stopPropagation():(event.cancelBubble=true);">
</div>
</div>
<div id="t"></div>
<body onclick="alert(2)">
<div style="width:100px; height:100px; background-color:#CCC;" onclick="alert(1)" >
<div style="width:50px; height:50px; background-color:#C11;" onmouseup="this.onlosecapture()" onmousedown="var wc = this;this.setCapture();this.onlosecapture=function(){wc.onlosecapture=null;wc.releaseCapture();}" onclick="this.onlosecapture();event.stopPropagation?event.stopPropagation():(event.cancelBubble=true);">
</div>
</div>
</body>
<div style="width:100px; height:100px; background-color:#CCC;" id="overdiv" >
<div style="width:50px; height:50px; background-color:#C11;" onclick="event.stopPropagation?event.stopPropagation():(event.cancelBubble=true);">
</div>
</div>
<script>
function Action(){
this.dclick=0;
this.onClick=function(ev){
if(!this.dclick){alert(111)}
}
this.onMouseDown=function(ev){
ev =ev || window.event;
var target = ev.target || ev.srcElement;
if(target.id=="overdiv"){this.dclick=1;}else{this.dclick=0;}
}
this.onMouseUp=function(ev){
ev =ev || window.event;
var target = ev.target || ev.srcElement;
if(target.id=="overdiv"){this.dclick=!this.dclick;}
}
}
try{var ac=new Action();}catch(e){alert(e.description)}
(function(){
var od=document.getElementById("overdiv");
od.onclick=new Function ("return ac.onClick();")
od.onmousedown=new Function ("return ac.onMouseDown();");
od.onmouseup=new Function ("return ac.onMouseUp();") ;
})()
</script>