js动态append添加的节点,点击事件无效求教

js动态append添加的节点,点击事件无效求教,第1张

你的点击事件是通过选择器直接绑定的吧,像$(".selector").click这样绑的?这种只能绑定到这一句执行时符合选择器的对象。

换成下面这样的绑定方式:

$(document).on("click", ".selector", function() {

    console.log(this)

})

success: function (t) {

$.each(t.data, function (i, data) {

// 遍历 t.data 是数组

$("#text").append( // text 父div 的id 此处注意,在append点击时间不生效的时候 需要(""+i+"")这个形式;

"<div class='textLineImg-bottom'>" +

"<div class='textLeftImgCar' onclick='detail(""+i+"")'>"

+ t.data[i].car_plate_number + "</div></div>")

})

简单来说就是注意转义字符的使用

首先,jquery是 *** 作普通xhtml的,对应svg这种特殊的标签,或者说xml,浏览器如何区分,当然是通过命名空间:namespaceURI,比如普通html的是http://www.w3.org/1999/xhtml,而svg也有自己的命名空间:http://www.w3.org/2000/svg,jquery在 *** 作的时候没有加以区分,因此导致了这样的错误。怎么办,使用setAttributeNS创建svg标签即可。

其次,我们创建大量标签的时候,喜欢innerHTML=template这种方式,svg也可以,应该说大部分浏览器都可以,可是有些浏览器不可以,我们就需要自己提供兼容的innerSVG方法了。

最后,关于上面说的二点,你都可以对比这个例子。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11923550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存