【发布时间】:2021-02-11 23:43:38
【问题描述】:
我有下面的 div 类“保存的愿望清单”,
<div class="saved-wishlist">
<i class="fas fa-wishlist"></i>
<a href="#" id="A123" class="remove-from-wishlist">
Saved to Wish List</a>
</div>
在带有“remove-from-wishlist”类的锚点悬停时,我正在更新 'saved-wishlist' div 的 html,
jQuery
$(document).on('mouseenter', '.remove-from-wishlist', function() {
var $this = $(this);
$this.closest('.saved-wishlist').html($("#tooltip_remove_content").html()); //Gets html from other div and updates html of 'saved-wishlist' div
});
$(document).on('mouseleave', '.remove-from-wishlist', function() {
var $this = $(this);
//some jQuery code
});
现在,类 'saved-wishlist' 的 div 看起来像,
<div class="saved-wishlist">
<i class="fas fa-minus-circle"></i>
<a href="#" id="A123" class="remove-from-wishlist">
Remove from Wish List</a>
</div>
我面临的两个问题,
-
在新添加的锚标记上,当我将鼠标光标移开时,不会调用 mouseleave 函数,而是触发 mouseenter 。
-
点击新添加的锚标签,没有任何反应,我有下面的代码,
$(document).on('click','.remove-from-wishlist',function(){ //some jQuery code });
我在这里犯了什么错误?
【问题讨论】:
-
因为您要替换整个
saved-wishlist元素的HTML,所以remove-from-wishlist元素被删除。您无法在不再存在的元素上获得 mouseleave 事件。 -
新添加到 'saved-wishlist' div 的 html 包含 'remove-from-wishlist' 元素。
标签: jquery