新的FontAwesome 5版本在使用" SVG和JS"时,使图标看起来非常干净。副作用是很难找到一种使用事件冒泡/委托来瞄准它的万无一失的方法。有时您会点击它并获取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
和<svg>
。
因为我无法准确定位正确的元素,所以我得到了一些非常不可预测的结果。此页面上的所有内容都是通过来自DB的PHP查询或来自DB的AJAX动态生成的。我是否应该为同一事件编写两个不同的处理程序来解决这个问题?
我意识到我可以使用Web Fonts with CSS
版本,但与JS
版本相比,图标看起来非常像素化,所以如果可能,我宁愿使用JS
版本。
我必须在这种情况下使用事件冒泡,因为在页面加载后会生成元素。