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,怎么实现啊!!!??? 展开
像下面这种我怎么点击鼠标位置的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,怎么实现啊!!!??? 展开
4个回答
展开全部
右键点击没试过,不过如果是左键点击的话就需要用到 鼠标点击的坐标与元素相对位置 的判断了
举个栗子
<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>
追问
和我的解决方案一样的
展开全部
首先你这种做法是可行的,所以你要先看看是不是js存在语法错误
如果不是的话 在去查询第一个ajax 对应的servlet或者action 看看是不是出异常了
因为这样也可能导致ajax异常结束
如果不是的话 在去查询第一个ajax 对应的servlet或者action 看看是不是出异常了
因为这样也可能导致ajax异常结束
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的重叠元素指的是id属性一样吗?
如果是用jquery添加的click事件 如
$("#id").on("click",function(){
alrrt("点击");
})
那么 所有同id的都有效!
如果是用jquery添加的click事件 如
$("#id").on("click",function(){
alrrt("点击");
})
那么 所有同id的都有效!
追问
跟上面一样的都限制了选择好的div,我只要执行鼠标下面的所有div
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实没有这么复杂的吧,你是想要点击之后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进入这个位置获取它的标识,
再通过判断标识来执行点击事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询