Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:mouseleave上的Kill Mouseenter/mouseleave函数_Javascript_Jquery - Fatal编程技术网

Javascript jQuery:mouseleave上的Kill 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

我对mouseenter/mouseleave函数有一些问题

请看一下我的代码

$(".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");

        }