0

私は、比較的一般的な問題であるに違いないものを抱えています。

次のコードを検討してください。

<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 をキャンセルします。

私の質問は; 2 を機能させるにはどうすればよいですか

助けてくれてありがとう、この質問が以前に尋ねられた場合はお詫び申し上げます。

4

2 に答える 2

0

jquery APIは、キャンセルできないと言っています。

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

おそらくsetTimeoutを使用する必要があります。

于 2013-06-17T09:25:02.753 に答える
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')
        });  

    });
于 2013-06-17T10:02:46.193 に答える