Javascript jQuery:mouseleave上的Kill Mouseenter/mouseleave函数
我对mouseenter/mouseleave函数有一些问题 请看一下我的代码Javascript jQuery:mouseleave上的Kill Mouseenter/mouseleave函数,javascript,jquery,Javascript,Jquery,我对mouseenter/mouseleave函数有一些问题 请看一下我的代码 $(".elms").live( { mouseenter: function (e) { $("a").click(function() { alert('test'); }); }, mouseleave: function (e) { //do something else
$(".elms").live(
{
mouseenter: function (e)
{
$("a").click(function()
{
alert('test');
});
},
mouseleave: function (e)
{
//do something else
}
});
html:
<div class='elms'>test [ function says `test` ]</div>
<div class='elms'>test [ function says `test` and `test` ]</div>
<div class='elms'>test [ function says `test` and `test` and `test` ]</div>
<div class='elms'>test [ function says `test` and `test` and `test `test` and `test` ]</div>
有什么想法吗
[Fiddle:我不确定这是否是您想要的,在这种情况下,您每次将鼠标移到.elms元素上时都会添加一个侦听器。如果您确实想在每次鼠标悬停时添加一个侦听器,并且不想看到重复的行为,可以使用bind和unbind来设置所述的鼠标事件 }))
我修改了您的小提琴如果每次都必须销毁侦听器,请尝试jQuery.one(),它将在第一次调用后自动销毁侦听器 如果侦听器不一定要运行一次,请尝试jQuery.off()解除绑定侦听器
你的小提琴链接不正确,
live
已经被弃用了一段时间了…@deweyredman,更新我修改了你的小提琴,看起来像你想要的那样工作。是的,它工作正常。但是我不知道为什么不在真实代码中工作,真实代码与其他javascript文件中的其他变量有很多联系,我不能在这里发布它可能是您正在使用的选择器…a是非常通用的..我可能会做类似$(“div.elms>a”)的事情
var killIt = $(".elms").live(
{
mouseenter: function (e)
{
$("a").click(function()
{
alert('test');
});
},
mouseleave: function (e)
{
killIt.die();
}
});
$(".elms").live({
mouseenter: function (e) {
$("a").bind("click", function(){
alert('test');
});
},
mouseleave: function (e) {
$("a").unbind("click");
}