两个不同的 OnClick 两个 div,一个在另一个上 [英] Two differents OnClick on two divs, one over the other

查看:33
本文介绍了两个不同的 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,一个在另一个上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆