jQuery动态更新SVG后,点击事件为何失效?-灵析社区

我是张工你呢

$('.class1 .class2 .path1').on("click", function() { alert('12345'); }); 此时点击svg区域会有弹窗显示12345,然后我使用jquery动态更新svg内容: $('#svg-1').html(''); 然后我再点击svg区域却显示没有任何弹窗。 请教为何动态生成的svg内容无法响应点击事件呢?感谢。 我通过console控制台执行如下代码后,再点击svg区域却可以显示12345弹窗: $('.class1 .class2 .path1').on("click", function() { alert('12345'); }); 使用 $('#svg-1').on("click", '.class1 .class2 .path1', function() { alert('12345'); }); 仍然没有弹窗显示!

阅读量:200

点赞量:0

问AI
sssssjkl
因为你之前的事件是绑定在path1上的,新增的元素虽然class也是path1,但已经不是同一个元素了。 对于这种情况,通常使用冒泡的原理,把事件绑定在上级不被移除的元素上,比如"$('#svg-1').on('click', '.class1 .class2 .path1', function(){...})"