Two differents OnClick on two divs, one over the other(两个不同的 OnClick 两个 div,一个在另一个上)
问题描述
我有两个 div,一个大一个比另一个小,每个 div 都有自己的 OnClick 方法.我遇到的问题是当我单击较小的 div 时,也会调用大 div 的 OnClick 方法.
谁能避免这种情况?
检测哪个元素被点击的最好方法是分析事件的目标(点击事件).我为这个案例准备了一个小例子.您可以在下面的代码中看到它.
<上一页>函数 amIclicked(e, 元素){e = e ||事件;var 目标 = e.target ||e.src元素;如果(目标.id==元素.id)返回真;别的返回假;}函数oneClick(事件,元素){如果(amIclicked(事件,元素)){alert('一个被点击');}}函数twoClick(事件,元素){如果(amIclicked(事件,元素)){alert('点击了两个');}}可以在执行脚本之前调用此 javascript 方法
示例
<上一页><风格>#一{宽度:200px;高度:300px;背景颜色:红色;}#二{宽度:50px;高度:70px;背景颜色:黄色;左边距:10;边距顶部:20;}</风格><div id="one" onclick="oneClick(event, this);">一<div id="two" onclick="twoClick(event, this);">二</div></div>我希望这会有所帮助.
I have two divs, a big one and a smaller over the other, each div has its own OnClick method. The problem I have is when I clicked the smaller div, the big div's OnClick method is called too.
Who can I avoid that?
The best way to detect which element was clicked is to analyze target of event ( click event ). I have prepared small example for this case. You can see it in code below.
function amIclicked(e, element) { e = e || event; var target = e.target || e.srcElement; if(target.id==element.id) return true; else return false; } function oneClick(event, element) { if(amIclicked(event, element)) { alert('One is clicked'); } } function twoClick(event, element) { if(amIclicked(event, element)) { alert('Two is clicked'); } }
This javascript method can be called before you execute your script
Example
<style> #one { width: 200px; height: 300px; background-color: red; } #two { width: 50px; height: 70px; background-color: yellow; margin-left: 10; margin-top: 20; } </style> <div id="one" onclick="oneClick(event, this);"> one <div id="two" onclick="twoClick(event, this);"> two </div> </div>
I hope this helps.
这篇关于两个不同的 OnClick 两个 div,一个在另一个上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:两个不同的 OnClick 两个 div,一个在另一个上


- Flexslider 箭头未正确显示 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 失败的 Canvas 360 jquery 插件 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06