0

因为我正在使用 Jquery 创建 DOM,所以很难复制输出,所以我添加了一张我使用一种工具捕获的代码图像

在此处输入图像描述

我已将悬停和鼠标悬停事件附加到id='nf1'使用此代码

$("#nf"+n).hover(function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").show();
});
$("#nf"+n).mouseout(function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").hide();
});

这里n是post_id,我正在循环从响应中获得的所有post_id。这个附加事件但没有给出预期的行为就像鼠标悬停在id='nf1post_delete'它上面时一样

请询问是否有任何疑问

4

3 回答 3

1

按照您描述的方式,您实际上希望将两个函数传递给.hover(),一个用于 mouseenter 上的操作,一个用于 mouseleave 上的操作。您只能将一个函数传递给.hover(),但它会在您翻转和推出时运行该函数。

http://api.jquery.com/hover/

所以,试试这个:

$("#nf"+n).hover(function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").show();
},function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").hide();
});

.mouseout()根本不需要这个功能。

于 2012-07-27T17:49:38.573 回答
1

首先,.hover() 包括 mouseenter 和 mouseleave。您是否将这两个功能都放在那里并且不使用其他事件。也不要使用 mouseout()。改用 mouseleave()。

所以你要么使用 hover(function(){},function(){}); 单独使用,或者使用 mouseenter() 和 mouseleave()。

于 2012-07-27T17:52:13.107 回答
1

由于您正在操作 DOM,因此我建议您使用 jQuery.on()而不是.hover()

$(document).on({
  mouseover: function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").show();
  },
  mouseout: function(){
    $("#nf"+$(this).attr("post_id")+"post_delete").hide();
  }
}, "#nf"+n);

如果您在页面加载后在 DOM 中创建某些内容,则.on()有助于将事件侦听器附加到它。

.on() 的 jQuery API

于 2012-07-27T17:56:25.323 回答