我尝试在一个字体很棒的图标旁边的超链接上添加一个抖动效果。HTML如下所示:
<div class="icon-hyperlink">
<span>
<i class="fas fa-phone p-2"></i>
</span>
<span>
<a href="tel:XXXX XX XX XX">John: XXXX XX XX XX</a>
</span>
</div>
我尝试将类fa-shake添加到与类"fas"匹配的i中,并在不悬停时删除它。
我不是很精通jQuery,但是我读了很多文档和其他stackoverflow文章来让它工作,但都无济于事。
我的当前代码是:
$(document).ready(function() {
$(".icon-hyperlink a").hover(function(e) {
e.target.closest(".fas").addClass("fa-shake");
}, function(e) {
e.target.closest(".fas").removeClass("fa-shake");
});
});
我得到的错误是:
未捕获的类型错误:无法读取null的属性(正在读取"addClass")
我还尝试了以下方法:
$(e.target.closest(".fas")).addClass("fa-shake");
这不会给我带来任何错误,但它也不起作用。
3条答案
按热度按时间vojdkbi01#
您需要向上遍历到共享父对象,然后找到图标
如上所述,
<span>
元素看起来是不必要的,而且只会使问题复杂化。而且,现在是2022年,您可能不需要jQuery。
bkhjykvo2#
可以使用
.parents()
和.find()
来选择要查找的.fas
元素。忽略我对html和css所做的修改,它们只是用来演示js的,
.fas
元素不是抖动,而是变红。b5buobof3#
这是可以实现的没有javascript和一个小的侦探工作是什么FA在幕后使用。