【问题标题】:Jquery show/hide based on variable (not toggle) [duplicate]基于变量的Jquery显示/隐藏(不是切换)[重复]
【发布时间】:2026-02-05 06:20:08
【问题描述】:

在 jQuery(我目前使用的是 1.11.4)中,是否有任何内置的帮助函数允许您根据变量显示/隐藏元素?

例如,目前要根据复选框显示/隐藏某些内容,我会执行类似于这两个示例的操作...

$("#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 的类似情况,那也很有用。)

【问题讨论】:

    标签: jquery


    【解决方案1】:

    您只需要进一步阅读文档即可。 .toggle() 允许你通过 true/false 来设置显示:

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

    显示

    类型:布尔值

    使用 true 显示元素或 false 隐藏 它。

    所以你可以将$(this).is(":checked") 传递给它,例如.toggle( $(this).is(":checked") )

    【讨论】:

    • 我将使用 OP 对重复问题的评论......“好的,所以我是个白痴,在我提问之前需要 RTFM。”。感谢您的回答...我会标记为答案
    • 在我极其有限的辩护中,我阅读了第一个定义(.toggle( [duration ] [, complete ] ))并假设如果我传入一个布尔值,它将被视为[duration]...你是完全正确的我没能继续下定义
    • @freefaller 不要出汗;发生在我们所有人身上
    • 如果您要传递任何变量,请确保将其强制为布尔值,.toggle(!!show) 否则您可能会传递 undefined,然后它只会切换...祝您之后找到错误。