当前位置: 首页 > 知识库问答 >
问题:

显示/隐藏切换按钮未按预期工作

古弘
2023-03-14

我是jQuery的新手,我试图在不使用jQuery的切换函数的情况下创建一个show/hide切换按钮,但我不知道下面的代码有什么问题。

“隐藏”按钮可成功隐藏段落。隐藏部分起作用了。它添加了一个类“show”,删除了类“hide”,并更改了按钮的文本。我使用Dev工具来查看这个部分,这个部分正在工作,但是再次点击按钮就不工作了,即show部分。

null

$(document).ready(function() {
  $(".hide").click(function() {
    $(".content").hide();
    $(this).addClass("show");
    $(this).removeClass("hide");
    $(this).text("Show");
  });
  $(".show").click(function() {
    $(".content").show();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<p class="content">If you click on the "Hide" button, I will disappear.</p>
<button class="hide">Hide</button>

null

共有2个答案

巫晋鹏
2023-03-14

您不想更改类--如果您想更改,则需要委托,以便将事件注册到一个静态容器,如document

$(document).on("click",".hide",function() {

我建议改为切换:

null

$(document).ready(function() {
  $(".but").on("click",function() {
    $(".content").toggle();
    $(this).text($(this).text()=="Show"?"Hide":"Show");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<p class="content">If you click on the "Hide" button, I will disappear.</p>
<button class="but">Hide</button>
贝财
2023-03-14

您可以使用toggle()使用单个按钮轻松切换元素的可见状态。然后您可以向text()提供一个函数,根据按钮的当前值设置按钮上的文本。试试看:

null

$(document).ready(function() {
  $(".toggle").click(function() {
    $(".content").toggle();
    $(this).text(function(i, t) {
      return t == 'Show' ? 'Hide' : 'Show';
    })
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<p class="content">If you click on the "Hide" button, I will disappear.</p>
<button class="toggle">Hide</button>
 类似资料:
  • 问题内容: 希望这是一个简单的问题。我有一个我想用按钮切换隐藏/显示 问题答案: 看一下jQuery Toggle HTML: jQuery的: 对于jQuery 1.7及更高版本

  • 我正在尝试通过一个按钮切换多个div与相同的类。目前,只有第一个div在执行任务,其余的都被忽略了。我尝试将.getElementById更改为.getElementsByClassName,但它也没有起到这个作用。你能帮忙吗?这是我的代码。我从两天起就开始尝试了。:/ 按钮代码: null null 单击“隐藏”/“显示”按钮时更改按钮文本的代码(德文): null null 问题也许就在这里。

  • 我正在尝试隐藏按钮div和显示一个隐藏的div后,一个表单按钮已经被点击,加上延迟提交/重定向。下面是我想出的办法,但似乎没有100%奏效。 null null 任何建议都非常感谢

  • 我试图从活动中隐藏/显示片段中的按钮,但它给了我以下异常。 android.view.ViewRootImpl$CalledFromWrongThreadException:只有创建视图层次结构的原始线程才能触摸其视图。 家庭活动 类别片段 代码太大,无法在此处发布。这就是为什么我只在发现问题的地方发布代码。 我能够获得新设计按钮实例。令我震惊的是,如果尝试玩按钮实例(可见/消失),它会给我上述异

  • 我正在使用spring Roo并希望访问Controller类中的一个bean,该类在ApplicationContext.xml中具有以下配置: 配置类本身是: 在我的Controller中,我认为一个简单的Autowired注释应该可以完成这项工作 在启动过程中,spring在setSkipWeeks方法中打印消息。不幸的是,每当我在控制器中调用config.getSkipWeeks()时,它

  • 当我运行以下程序时,它只打印 然而,从Java 8的equalsIgnoreCase文档中我们发现: 如果以下至少一项为真,则两个字符c1和c2被视为相同的忽略情况: •对每个字符应用java.lang.character.ToUpperCase(char)方法会产生相同的结果 所以我的问题是为什么这个程序不打印 在这两种操作中,都使用了大写字符。