div中包含span,并且都绑定了点击事件,点击出发的一直是div的点击事件,这个怎么解决
如图这个是用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
是的,那个是写错了的,已经改好
1, div赋值的id是data.sys_id, 但是下面取值用了$("#" + data.id), 是不是打错了?
2,你想拼接后在jq里选中span, 用$(spanON)即可, 没必要用$("#" + data.id).find("span")
3, .attr("onclick",spanclick(spanON));这个写法是错误的, 程序会马上执行spanclick(spanON)然后将返回结果赋给onclick属性, 正确写法应该是
多谢帮助,已经结觉
可以去看看js的事件驱动
非常谢谢
搜索关键字“js 阻止冒泡”
层叠的方法试过了,没有达到想要的效果,不过已经解决了
你应该设置下位置,同时设置层叠就可以区分了。
这个事件冒泡是之后遇到的问题,您的答案对我帮助很大
http://blog.csdn.net/abb_chen/article/details/49406649 ;看下这个可能对你有帮助