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

发布网友 发布时间:2024-08-19 18:13

我来回答

4个回答

热心网友 时间:2024-08-23 09:18

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

举个栗子

<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>

热心网友 时间:2024-08-23 09:11

你说的重叠元素指的是id属性一样吗?
如果是用jquery添加的click事件 如
$("#id").on("click",function(){
alrrt("点击");
})
那么 所有同id的都有效!

热心网友 时间:2024-08-23 09:15

其实没有这么复杂的吧,你是想要点击之后div1、2、3都执行操作,
既然是这样那你为什么不给他们的父级绑定点击事件呢?

热心网友 时间:2024-08-23 09:11

首先你这种做法是可行的,所以你要先看看是不是js存在语法错误
如果不是的话 在去查询第一个ajax 对应的servlet或者action 看看是不是出异常了
因为这样也可能导致ajax异常结束

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com