div中包含span,并且都绑定了点击事件,点击出发的一直是div的点击事件,这个怎么解决

发布于 2021-11-28 21:10:32 字数 811 浏览 829 评论 10

如图这个是用js动态拼接的,代码如下

var div = document.createElement("div");
div.setAttribute("id", data.sys_id);
div.setAttribute("class", "defaultclass");
div.innerHTML = data.sys_id;
var spanON = document.createElement("span");
            spanON.setAttribute("class","spanclass");

            spanON.innerHTML = "M";

        div.appendChild(spanON); 

$("#" + data.id).find("span").attr("onclick",spanclick(spanON));

不管是点击div还是点击span一直都是触发div的click事件,大神们看下要怎么解决





如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

眼眸 2021-12-03 23:16:02

是的,那个是写错了的,已经改好

好听的两个字的网名 2021-12-03 23:08:51

1, div赋值的id是data.sys_id, 但是下面取值用了$("#" + data.id), 是不是打错了?

2,你想拼接后在jq里选中span, 用$(spanON)即可, 没必要用$("#" + data.id).find("span")

3, .attr("onclick",spanclick(spanON));这个写法是错误的, 程序会马上执行spanclick(spanON)然后将返回结果赋给onclick属性, 正确写法应该是

$(spanON).click(function() {
  spanclick(this);
  // 如果不想触发div点击, 就return false;
  // return false;
});

成熟稳重的好男人 2021-12-03 23:06:24

多谢帮助,已经结觉

时光清浅 2021-12-03 22:51:17

可以去看看js的事件驱动

坏尐絯 2021-12-03 22:37:25

非常谢谢

柒夜笙歌凉 2021-12-03 20:19:47

搜索关键字“js 阻止冒泡”

白龙吟 2021-12-03 13:09:09

层叠的方法试过了,没有达到想要的效果,不过已经解决了

夜无邪 2021-12-03 08:11:14

你应该设置下位置,同时设置层叠就可以区分了。

只为守护你 2021-12-03 04:14:24

这个事件冒泡是之后遇到的问题,您的答案对我帮助很大

谁的新欢旧爱 2021-12-01 06:39:26

http://blog.csdn.net/abb_chen/article/details/49406649 ;看下这个可能对你有帮助

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文