2017-02-27 36 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