$(function() {
$('.quickNav').live('tap',function(event) {
if ($(".select_body").is(":hidden"))
{
$(".select_body").show();
}
else
{
$(".select_body").hide();
}
});
});
它工作得很好,除了一旦它可见,你再次点击它就不会消失。
有什么想法?
发布于 2011-03-15 05:57:04
$('.quickNav').live('tap',function(event) {
$(".select_body").toggle(); // toggles the visibility/display of the element.
});
这与冗长的if/else脚本的作用相同
请参阅jQuery API文档中的toggle method documentation。
发布于 2013-04-09 07:55:29
一旦元素被隐藏,它的高度和宽度就为零。这意味着当你点击相同的位置时,你实际上不会再次点击该元素。
我建议将其不透明度设置为零。下面是你可以做的:
$(function() {
$('.quickNav').live('tap',function(event) {
if ($(".select_body").is(":hidden"))
{
$(".select_body").css("opacity", 1);
}
else
{
$(".select_body").css("opacity", 0);
}
});
});
以及相同行为的较短版本:
$(function() {
$('.quickNav').live('tap',function(event) {
$(".select_body").css("opacity", 1 - parseInt($(".select_body").css("opacity")));
});
});
我还没有真正测试过这段代码,所以我甚至不知道它是否能运行!
注意: fadeOut()将在其动画的末尾使用hide(),因此它在这里没有真正的帮助。
https://stackoverflow.com/questions/5305051
复制相似问题