簡體   English   中英

應用display后如何正確顯示元素:jQuery無

[英]How to properly show an element after applying display:none with jQuery

我遇到了一個非常棘手的問題,我無法通過click事件添加display:none后無法觸發下拉菜單。 我以前曾嘗試通過懸停事件將其添加回去,但是在某些瀏覽器中似乎一直觸發着它,因此我已經放棄了它並完全陷入困境。 使用以下代碼,在切換顯示屬性后如何再次正確顯示下拉列表。

$(document).ready(function() {
    $('li.active ul.sub-menu.dropdown a').click(function() { 
        if($("li.active ul.sub-menu.dropdown").css("display", "block")){
           $("li.active ul.sub-menu.dropdown").hide();
        }
    });
})

道歉,我想早點問類似的問題,但是我之前並不太了解這個問題。 如果我不合時宜,我表示歉意,但我真的很困。 任何幫助是極大的贊賞。

您是否嘗試過僅使用.toggle()

$(document).ready(function() {
    $('li.active ul.sub-menu.dropdown a').click(function() { 
        $("li.active ul.sub-menu.dropdown").toggle();
    });
})

它會自動檢查元素是否可見,然后切換顯示屬性。

嘗試使用show()函數:

$(document).ready(function() {
    $('li.active ul.sub-menu.dropdown a').click(function() { 
        if($("li.active ul.sub-menu.dropdown").css("display", "block")){
           $("li.active ul.sub-menu.dropdown").hide();
        }
       else if($("li.active ul.sub-menu.dropdown").css("display", "none")){
           $("li.active ul.sub-menu.dropdown").show();
    });
});

我認為,總的來說,最好通過在CSS中添加類來完成這些工作。 您可以執行以下操作:

$(document).ready(function() {
$('li.active ul.sub-menu.dropdown a').click(function() { 
    $("li.active ul.sub-menu.dropdown").toggleClass("show");
});
});

並在CSS中:

.show {
  display:block;
}

當然,使用.show()和.hide()也是可行的。 它只會給您更少的控制權。

暫無
暫無

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

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