<div id="div1" style="height:50px;width:120px;background-color:Green;" onmousedown="alert('div1')">
<div id="div2" style="height:25px;width:110px;background-color:red;z-index:2" onclick="alert('div2')"></div>
</div> 我怎样做才能得到我正确的事件
我好头疼了 ,谢谢高手指点迷津~!!
解决方案 »
- 小米论坛的效果如何实现啊,发帖以后 会提示 增加1米,然后慢慢消失
- 对上传图片大小限制中出现的问题
- 各位大侠,帮帮忙啊,关于下拉列表框弹出列表的问题,拜托了啊。
- div 弹窗 始终居中
- 如何让HTML <OBJECT>标签里的颜色选择器居中?
- 以前不知道可以这样调试js,惭愧啊~
- 如何得到一个页面元素的位置信息。包含(top,left,width,height)
- 我要用js语句取得 radio 选框的值。
- 一个树形菜单,每一项对应一个独立的ID,我要在选择一项后得到其ID,该怎么办?
- 请问怎么屏蔽网页的原代码?
- js 动态创建一行问题
- ext Toolbar 上的查询文本框值怎么获取上一个grid 选中的行值啊?
我想要我点击子层执行子层的onclick事件,点父层执行父层的onmousedown事件 但是以上代码不管你点那个都是执行了父层的onmousedown事件?这是怎么回事的??
然后在子的onclick里去取消冒泡
<div id="div2" style="height:25px;width:110px;background-color:red;z-index:2" onclick="doSomething(event)"></div>
</div>
</div> <script>
function doSomething(e) {
alert('div2');
e.stopPropagation()
}
</script>
但是怎么解决呢,还有IE的冒泡不是从最顶层的事件元素向document散发出去的吗 那如果是这样不是先弹出“div2” 然后到 “div1”吗?为什么只弹了"div1"?
但是父层的onmousedown事件是必须要的 那该怎么做呢?是不是做不到了?
click事件在鼠标放开后才产生
mouseup事件在鼠标按下去的时候就已经产生了
你希望在鼠标按下去的时候 执行父DIV的事件
在鼠标放开的时候 执行子DIV的事件
且 子事件要在父事件之前触发
。。矛盾啊
矛盾即不合理 所以你要改变你的业务逻辑
不是这样说 好多事件处理都有这样的需求(比如js剪载图片,嵌套层的拖动,嵌套层的缩放...) 现在我就有两个解决方案:
1:在子层中添加同样的onmousedown事件用于阻止子层事件onclick之前发生的onmousedown事件,即阻止onmousedown的冒泡,但是问题又来了,这种做法只有IE才正确,如火狐的事件流和IE是相反的,并且如果有多个子层那就麻烦了。
2:是在父层的onmousedown做一个判断做一个暗号.当onmousedown事件流到达父层是不是本意要执行自身了业务代码。
----不知道你们有没有更好的办法