js 中重叠元素onclick 同时执行吗,还是只执行一个

1js中重叠元素并列层级onclick好像是只执行一个,上下级关系的onclick是同时执行的像下面这种我怎么点击鼠标位置的div都执行事件<divid="one"><d... 1 js 中重叠元素并列层级onclick好像是只执行一个,上下级关系的onclick是同时执行的
像下面这种我怎么点击鼠标位置的div都执行事件
<div id="one">
<div id="1" onclick="a(this.id)" style="position: absolute">1</div>
<div id="2" onclick="a(this.id)" style="position: absolute">2</div>
<div id="3" onclick="a(this.id)" style="position: absolute">3</div>
</div>
<script>
function a(id){
alert(id);
}
</script>
2 另外我想实现鼠标右键点击获取同一个位置下的所有元素的id,怎么实现啊!!!???
展开
 我来答
babyfans隆哥
2019-04-12 · TA获得超过112个赞
知道小有建树答主
回答量:205
采纳率:77%
帮助的人:66万
展开全部

右键点击没试过,不过如果是左键点击的话就需要用到 鼠标点击的坐标与元素相对位置 的判断了

举个栗子

<style>
div{
background: red;
width: 100px;
height: 100px;
}
</style>
<div id="one" onclick="fa(this);">
<div id="1" style="position: absolute">1</div>
<div id="2" style="position: absolute">2</div>
<div id="3" style="position: absolute">3</div>
</div>
<script>
function fa(a){
var arr = []; //点击位置元素ID集合
var x = event.clientX; //鼠标x坐标
var y = event.clientY; //鼠标y坐标
var childs = a.children;
for (var i = 0;i < childs.length; i++){
var left = childs[i].offsetLeft; //子元素左边界坐标
var right = childs[i].offsetLeft + childs[i].offsetWidth; //子元素右边界坐标
var top = childs[i].offsetTop; //子元素上边界坐标
var bottom = childs[i].offsetTop + childs[i].offsetHeight; //子元素下边界坐标
if (left < x && right > x && top < y && bottom > y){
arr.push(childs[i].id); //将符合条件的元素ID加入集合
}
}
alert("鼠标点击位置下的所有子元素的id:" + arr);
}
</script>
追问
和我的解决方案一样的
小烷熊米欧d9
2019-04-10 · TA获得超过347个赞
知道小有建树答主
回答量:517
采纳率:82%
帮助的人:69.4万
展开全部
首先你这种做法是可行的,所以你要先看看是不是js存在语法错误
如果不是的话 在去查询第一个ajax 对应的servlet或者action 看看是不是出异常了
因为这样也可能导致ajax异常结束
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丁巴什罗大神cy
2019-04-11 · TA获得超过1784个赞
知道小有建树答主
回答量:1525
采纳率:86%
帮助的人:636万
展开全部
你说的重叠元素指的是id属性一样吗?
如果是用jquery添加的click事件 如
$("#id").on("click",function(){
alrrt("点击");
})
那么 所有同id的都有效!
追问
跟上面一样的都限制了选择好的div,我只要执行鼠标下面的所有div
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
o归隐情缘o
2019-04-11 · 而我在远途,在帷幕。所以君不见,卿不遇!
o归隐情缘o
采纳数:618 获赞数:691

向TA提问 私信TA
展开全部
其实没有这么复杂的吧,你是想要点击之后div1、2、3都执行操作,
既然是这样那你为什么不给他们的父级绑定点击事件呢?
追问
我是只想鼠标下面重叠的所有div执行操作,也会有不在鼠标下面的div我就不执行,不管id相同不相同,不是选择id执行,那样简单。
比如div1、2、3,1和2重叠在鼠标下面,3在鼠标外面,就只能执行1和2;
下次div1和3重叠在鼠标下面,2不在,我就只执行1和3;
不知道说清楚没,就是鼠标点击位置的所有div才执行操作
追答
鼠标图标就那么一点,怎么同时点击两个位置?
真的不明白你要表达点什么,你说的鼠标下面重叠的div,
是个怎么重叠法?像你写的这个id1,id2,id3就是同级关系,
如果是按照你说的重叠,是不是就是你有很多个div,
但是你在页面上只显示两个div,他们交替重叠在一起,
你要点击的是装着这些div的大盒子,也就是父级元素,
但是只执行当前显示的这两个div,
如果是这样的话你可以给所有的div设置一个标识,
然后设定位置获取div移动的距离,当div进入这个位置获取它的标识,
再通过判断标识来执行点击事件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式