HTML 中的 z-index 和 onclick
我有以下 HTML 代码:
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<div id="A" style="width:100px; height: 100px; background: #00FF00; padding: 15px;
z-index: 50; opacity: .5" onclick="javascript:alert('A')">
<div id="B" style="width:50px; height: 50px; background: #FF0000; z-index:10;"
onclick="javascript:alert('B')" >
</div>
</div>
我希望这样可以使单击 div B 的位置不会调用它的 onclick,而只会调用 A 的 onclick,因为 A 具有更高的 z-index。
如果不使用 z-index,我怎样才能实现这一目标?
I have the following HTML code:
<script src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
<div id="A" style="width:100px; height: 100px; background: #00FF00; padding: 15px;
z-index: 50; opacity: .5" onclick="javascript:alert('A')">
<div id="B" style="width:50px; height: 50px; background: #FF0000; z-index:10;"
onclick="javascript:alert('B')" >
</div>
</div>
I was hoping this would make it so that clicking on div B's position would not invoke it's onclick, but only A's since A ha a higher z-index.
If not with z-index, how can I achieve this ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用事件委托来实现 -不需要 z 索引等。将一 (1) 个单击处理程序分配给最上面的 div,并在处理程序内使用事件 target/srcElement 来决定对原始元素执行(不执行)操作。类似于:
处理函数:
查看实际操作
You can use event delegation for that - no need for z-indexes and the like. Assing one (1) click handler to the topmost div and, within the handler, use the event target/srcElement to decide what (not) to do with the originating element. Something like:
The handler function:
See it in action
你的 z-index 将不起作用,因为你需要将 css 位置更改为相对、固定或绝对。参考.sitepoint.com/css/z-index。
http://jsfiddle.net/SmdK8/
Your z-index's won't work as you need to change the css position to relative, fixed, or absolute. reference.sitepoint.com/css/z-index.
http://jsfiddle.net/SmdK8/
我认为在你的样式中使用position:absolute并将一个放在另一个之上就可以做到这一点。当前 div A 和 div B 并排放置。
I think using position: absolute in your styles and positioning one over the other would do this. Currently div A and div B sit side by side.
根据您不希望 B 触发的时间执行“preventDefault”。
Do a "preventDefault" based on when you don't want B to fire.
以下是处理切换 B 的 onclick 事件
示例的一种方法: http://jsfiddle.net/pxfunc/cZtgV/
HTML:
JavaScript:
为了奖励积分,示例中有一个 jQuery 解决方案。
Here's one way to handle toggling B's onclick event
example: http://jsfiddle.net/pxfunc/cZtgV/
HTML:
JavaScript:
for bonus points there's a jQuery solution in the example.