2017-02-27 33 views
2

在jQuery(我目前使用1.11.4),是否有任何內置的幫助功能,讓您顯示/隱藏基於變量的元素?基於變量jQuery的顯示/隱藏(而不是切換)

例如,在此刻展現基於一個複選框,我像做這兩個例子/隱藏着什麼......

$("#myChk").on("click", function() { 
    if ($(this).is(":checked")) { 
    $("#otherEl").show(); 
    } else { 
    $("#otherEl").hide(); 
    } 
}); 

$("#myChk").on("click", function() { 
    var $otherEl = $("#otherEl"); 
    ($(this).is(":checked") ? $otherEl.show() : $otherEl.hide()); 
}); 

是否有一個內置的功能,我不能很容易地找到允許類似的文檔...

$("#myChk").on("click", function() { 
    $("#otherEl").showOrHide($(this).is(":checked")) 
}); 

我很確定沒有任何東西,但我想我會問,以防萬一。

我知道.toggle()但這是基於元素的當前可見性,而不是外部變量。

(如果有人知道的任何事情.slideUp.slideDown這也將是有益的相似。)

回答

5

你只需要在文件中進一步向下看。 .toggle()允許你傳遞真/假設置顯示:

http://api.jquery.com/toggle/#toggle-display

顯示

類型:Boolean

使用真實的顯示元素或假隱藏 它。

因此,您可以將$(this).is(":checked")傳遞給它,例如, .toggle($(this).is(":checked"))

+0

我打算使用OP對重複問題的評論......「好的,所以我是個白癡,在提問之前需要RTFM。」感謝您的回答...當我可以回答時,我會標記爲答案 – freefaller

+0

在我非常有限的辯護中,我讀了第一個定義('.toggle([duration] [,complete])'),並假設我通過了布爾值它將被視爲'[持續時間]'......你是完全正確的,我沒有繼續下去的定義 – freefaller

+1

@freefaller不要汗流;背;發生在我們所有人身上 – j08691