You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Font Awesome 6将<i>标签转为<svg>后jQuery点击事件失效求助

解决Font Awesome 6替换<i>为<svg>导致jQuery点击事件失效的问题

Font Awesome 6的SVG自动替换机制会把页面中的<i>标签动态替换为<svg>标签,这可能导致依赖原标签的jQuery事件逻辑异常,以下是几种可行的解决方法:

方法1:改用attr()获取数据属性

jQuery的data()方法会缓存数据,动态替换后的<svg>元素可能未更新缓存,直接读取原始data-rating属性即可:

$(document).on('click', '.submit_star', function() {
    const rating_data = $(this).attr('data-rating');
    // 执行后续评分逻辑
});

方法2:配置Font Awesome保留原始标签结构

通过调整FA6的初始化配置,让原始<i>标签作为容器嵌套生成的<svg>,这样点击事件会正常冒泡到原标签,无需修改事件绑定代码:

<script>
document.addEventListener('DOMContentLoaded', function() {
    FontAwesome.config = {
        autoReplaceSvg: 'nest',
        keepOriginalSource: true
    };
    FontAwesome.init();
});
</script>

方法3:确认SVG元素的类与属性继承

在浏览器开发者工具中检查替换后的<svg>元素,确认它是否继承了原<i>的submit_star类和data-rating属性。如果属性缺失,需确保自定义类和数据属性正确添加到<i>标签上,FA6默认会保留这些属性到生成的<svg>中。


内容的提问来源于stack exchange,提问作者Hammad Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:36:08