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,一个在另一个上
基础教程推荐
- Javascript 在多个元素上单击事件侦听器并获取目标 2022-01-01
- Node.js 有没有好的索引/搜索引擎? 2022-01-01
- jQuery File Upload - 如何识别所有文件何时上传 2022-01-01
- 如何使用 CSS 显示和隐藏 div? 2022-01-01
- 为什么我在 Vue.js 中得到 ERR_CONNECTION_TIMED_OUT? 2022-01-01
- 什么是不使用 jQuery 的经验技术原因? 2022-01-01
- WatchKit 支持 html 吗?有没有像 UIWebview 这样的控制器? 2022-01-01
- 如何使用sencha Touch2在单页中显示列表和其他标签 2022-01-01
- 如何在特定日期之前获取消息? 2022-01-01
- 每次设置弹出窗口的焦点 2022-01-01
