新的 FontAwesome 5 版本在使用他们的“带有 JS 的 SVG”时,使图标看起来非常干净。副作用是很难找到一种使用事件冒泡/委托来定位它的万无一失的方法。有时您会单击它并获取path
节点,有时您将获取svg
节点。
我试过使用他们在标签内嵌套的方式,svg
但i
它不起作用。他们试图在这里解释它Auto-Replace-SVG-Nst但是......我没有取得任何进展。
所以我继续手动嵌套i
替换为另一个i
. <i><i class="far fa-comment-alt"></i></i>
. 检查时event
console.log(e.target.parentElement)
,有时我会得到正确的<i>
,有时我会得到<svg>
。这让我知道我还在打path
and <svg>
。
因为我无法准确定位正确的元素,所以我得到了一些极其不可预测的结果。此页面上的所有内容都是通过数据库中的 PHP 查询或数据库中的 AJAX 动态生成的。我是否应该为同一个事件编写两个不同的处理程序来解决这个问题?
我意识到我可以只使用Web Fonts with CSS
版本,但与JS
版本相比,图标看起来非常像素化,所以如果可能的话我宁愿使用JS
版本。
笔记
对于这种情况,我必须使用事件冒泡,因为元素是在页面加载后生成的。