我有一个切换功能。它应该在第一次点击时显示隐藏的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);
});
使其正常工作的正确方法是什么,我在哪里犯了错误?
答案 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();
}