簡體   English   中英

jQuery顯示隱藏延遲在鼠標離開后仍在運行

[英]jQuery show hide delay still running after mouse is away

我將.delay()設置為停止在效果上的每個鼠標上顯示,但現在它在每個鼠標上的顯示都只是延遲了。

似乎.delay()不是識別鼠標經過最短時間顯示在該部分之后的正確方法。

$(document).ready(function(){
    $('.article_wrapper').hover(
    function(){
        $(this).find('.actions').delay(800).show(300);
    },
    function(){
         $(this).find('.actions').hide(200);
    });

});

我還可以使用其他哪些功能?

在jQuery 1.9+上,您可以使用 finish()清除應用於特定隊列的所有先前延遲:( 盡管這尚未記錄)

演示

更新: 確實,為了不破壞隱藏動畫,您應該使用clearQueue()

$(document).ready(function(){
    $('.article_wrapper').hover(
    function(){
        $(this).find('.actions').delay(800).show(300);
    },
    function(){
        $(this).find('.actions').clearQueue().hide(200);
    });
});

不幸的是,這是一個令人討厭的問題。 解決此問題的正確方法是使用“ setTimeout”,此處將對其進行詳細說明。 嘗試添加延遲到jQuery AJAX請求

可以根據您的需要輕松地對其進行修改。

編輯

正如更好的答案指出的那樣,對於動畫來說這不是必需的,我將其保留在此處,因為它與大多數非動畫延遲有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM