Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.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 在页面刷新之前,如何使鼠标悬停?_Javascript_Jquery_Css_Mouseevent_Mouseover - Fatal编程技术网

Javascript 在页面刷新之前,如何使鼠标悬停?

Javascript 在页面刷新之前,如何使鼠标悬停?,javascript,jquery,css,mouseevent,mouseover,Javascript,Jquery,Css,Mouseevent,Mouseover,我希望在延迟后处理mouseover事件,然后在页面刷新之前处于非活动状态 这是我迄今为止的代码: $(function() { $("#page-flip").mouseover(function() { $(".box").toggleClass("box-change"); $(".films").toggleClass("films-change"); $(".synopsis").toggleClass("synopsis-ch

我希望在延迟后处理
mouseover
事件,然后在页面刷新之前处于非活动状态

这是我迄今为止的代码:

$(function() {
    $("#page-flip").mouseover(function() { 
        $(".box").toggleClass("box-change");
        $(".films").toggleClass("films-change");
        $(".synopsis").toggleClass("synopsis-change");
    });
});
我如何给它添加一个时间延迟,并在完全触发一次后使其处于非活动状态?谢谢:)

您可以使用
.one()
使事件处理程序只触发一次:

$(function() {
    //bind a mouseover event handler that will fire only once
    $("#page-flip").one('mouseover', function() { 

        //set a timeout so the code runs after half a second
        setTimeout(function () {

            //run your code here
            $(".box").toggleClass("box-change");
            $(".films").toggleClass("films-change");
            $(".synopsis").toggleClass("synopsis-change");
        }, 500);
    });
});
下面是一个演示:

文件:

您还可以使用
.off()

下面是一个演示:

请注意,
.on()
在jQuery 1.7中是新的,在本例中是相同的
.bind()
.off()
也是新的,因此如果您使用的是早于1.7和
.bind()
,则使用
.unbind()
可以使用
.one()
使事件处理程序只触发一次:

$(function() {
    //bind a mouseover event handler that will fire only once
    $("#page-flip").one('mouseover', function() { 

        //set a timeout so the code runs after half a second
        setTimeout(function () {

            //run your code here
            $(".box").toggleClass("box-change");
            $(".films").toggleClass("films-change");
            $(".synopsis").toggleClass("synopsis-change");
        }, 500);
    });
});
下面是一个演示:

文件:

您还可以使用
.off()

下面是一个演示:


请注意,
.on()
在jQuery 1.7中是新的,在本例中是相同的
.bind()
.off()
也是新的,因此如果您使用的是早于1.7和
.bind()
,则使用
.unbind()

编辑此答案比。但是它所使用的模式不需要jQuery,所以我将其保留


您可以简单地使用全局变量,也可以复杂地完全删除事件

简单的看起来像这样

 var __GlobalEventFired = false;
 $(function() { 
 $("#page-flip").mouseover(function() {  
    if(!__GlobalEventFired)
    {
       __GlobalEventFired = true;
       $(".box").toggleClass("box-change"); 
       $(".films").toggleClass("films-change"); 
       $(".synopsis").toggleClass("synopsis-change"); 
    }
}); 
});

编辑这个答案比。但是它所使用的模式不需要jQuery,所以我将其保留


您可以简单地使用全局变量,也可以复杂地完全删除事件

简单的看起来像这样

 var __GlobalEventFired = false;
 $(function() { 
 $("#page-flip").mouseover(function() {  
    if(!__GlobalEventFired)
    {
       __GlobalEventFired = true;
       $(".box").toggleClass("box-change"); 
       $(".films").toggleClass("films-change"); 
       $(".synopsis").toggleClass("synopsis-change"); 
    }
}); 
});

你知道解除绑定吗?你知道解除绑定吗?太棒了,非常感谢。:)现在我只需要延迟。@user1179593我的代码中的
setTimeout
创建延迟。您可以将
500
更改为您希望代码等待的任何其他毫秒数。非常感谢。:)现在我只需要延迟。@user1179593我的代码中的
setTimeout
创建延迟。您可以将
500
更改为您希望代码等待的任何其他毫秒数。