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

时间:2015-01-26 08:46:32

标签: javascript jquery html

我有一个切换功能。它应该在第一次点击时显示隐藏的div,并在第二次点击时隐藏它等等......但是,当你点击第一次时,没有任何反应。当你再次点击时,它就完成了这项工作。 (在第一次点击时显示,在第二次点击时隐藏,依此类推......)

HTML

<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);
});

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

2 个答案:

答案 0 :(得分:1)

您的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();
});

答案 1 :(得分:1)

因为第一次点击时,div中没有​​data("clicks"),所以clicks将是undefined,并且它会进入其他情况设置sis div隐藏。< / p>

我建议你以jquery的方式做到这一点:

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

或者如果你坚持自己做:

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