gpt4 book ai didi

javascript - 使用 $.delegate() 在命名空间中选择元素

转载 作者:行者123 更新时间:2023-11-30 18:44:34 25 4
gpt4 key购买 nike

我正在内联一个具有文本元素的外部 svg。我希望文本元素的内容反射(reflect)页面中的文本字段。如果用户编辑文本字段,它应该更新 svg 中的文本元素,反之亦然。我已经使用 $.bind() 完成了这项工作。

用户可以选择不同的 svg。原始 svg 被删除并加载一个新的 svg。文本元素在两个 svg 中,它只是一个不同的图形。

所以我真的需要 $.delegate() 而不是 $.bind()。我该如何编写该语法?这不起作用:

$('#svg_container').delegate('svg text', 'keyup click', function() {
});

这也不是:

$('#svg_container').delegate('text', 'keyup click', function() {
});

最佳答案

作为 jQuery 的选择器引擎 Sizzle不支持 XML namespace ,您可以通过转义将冒号简单地视为元素名称的一部分:

$('#svg_container').delegate('svg\\:text', 'keyup click', function() {
});

两个反斜杠,因为第一个在 JavaScript 中转义了第二个。然后转义的反斜杠转义 jQuery 选择器的冒号。

关于javascript - 使用 $.delegate() 在命名空间中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com