在jquery中取消鼠标悬停时的隐藏行为

时间:2013-06-17 09:19:37

标签: jquery hide delay show

我有一个相对常见的问题。

请考虑以下代码:

<html>
    <head>
        <script type="text/javascript" src="\\jquery-1.7.2.js"></script>
        <style>
            #div{
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div id="tabz1">1 tab</div>
        <div id="tabz2">2 tab</div>
        <script>
            $('div[id*="tabz"]').mouseout(function(){
                $(this).delay(1000).hide("slow");
            });
        </script>
    </body>
</html>

我希望此代码可以执行以下操作:

  1. 在鼠标输出时,div会在延迟后隐藏它(很棒,这样可行)。

  2. 如果鼠标重新进入div,则取消1。

  3. 我的问题是;我如何让2工作

    我得到任何帮助,并且如果之前已经问过这个问题,我会道歉。

2 个答案:

答案 0 :(得分:0)

jquery api sais无法取消。

http://api.jquery.com/delay/

也许你应该使用setTimeout。

答案 1 :(得分:0)

解决了我的问题:

    $('div[id*="tabz"]').mouseout(function(){

        $(this).delay(1000).slideUp('slow');

    });

    $('div[id*="tabz"]').mouseover(function(){

        $('div[id*="tabz"]').stop() 

        $('div[id*="tabz"]').show(function() 
        {
        $('div[id*="tabz"]').removeAttr('style')
        });  

    });