它在第二次点击时完成工作,为什么

It does the job on second click, why?

本文关键字:工作 为什么 第二次      更新时间:2023-09-26

我有一个切换功能。它应该在第一次单击时显示隐藏的div,并在第二次单击时隐藏它,依此类推......它有效,但是,当您首先单击时,没有任何反应。当您再次单击时,它会完成工作。(第一次点击时显示,第二次点击时隐藏等等...

目录

<div id="kesfetust">Click me</div>
<div id="sis">I'm a hidden div, and I should open on the first click,
and hidden on the second click.</div>

Jquery

$("#kesfetust").click(function() {
  var clicks = $(this).data('clicks');
  if (clicks) {
$("#sis").css({display: 'block'});
  } else {
$("#sis").css({display: 'none'});
  }
  $(this).data("clicks", !clicks);
});

使其正常工作的正确方法是什么,我在哪里犯了错误?

您的div 最初没有隐藏,请使用 display:none 隐藏它:

<div id="sis" style="display:none">I'm a hidden div, and I should open on the first click,
and hidden on the second click.</div>

为什么不简单简短:

$("#kesfetust").click(function() {
    $("#sis").toggle();
});

因为第一次点击时,div中没有data("clicks"),所以clicks会被undefined,它会进入其他情况设置隐藏的sisdiv。

我建议你用jquery的方式做:

$("#kesfetust").click(function() {
    $("#sis").toggle();
}

或者如果你坚持自己做:

$("#kesfetust").click(function() {
     if($("#sis").is(":hidden"))
        $("#sis").show();
     else
        $("#sis").hide();
}