我有简单的隐藏和显示功能,但它无法正常工作。任何帮助将不胜感激
<head>
<script type="text/javascript">
$(function(){
$('a').click(function(){
var visible= false;
if(visible){
$('div').hide('slow')
}
else {
$('div').show('slow')
}
visible=!visible;
})
})
</script>
</head>
<body>
<div style="background:#F00; width:500px; height:50px"></div>
<a href="#">hide</a>
<div class="append"></div>
</body>
答案 0 :(得分:4)
在事件处理程序之外声明并初始化visible
:
var visible= false;
$('a').click(function(){
if(visible){
$('div').hide('slow')
}
else {
$('div').show('slow')
}
visible=!visible;
});
否则,每次执行事件处理程序时,您都会使用visible
初始化false
,因此if(visible)
将永远不会为真。
但是,您也可以使用.toggle
[docs]来避免使用其他状态变量:
$('a').click(function(){
$('div').toggle();
});
答案 1 :(得分:1)
jQuery有一个内置的hide / show方法:.toggle()。它会在隐藏元素时显示您的元素,反之亦然。
答案 2 :(得分:0)
问题是这些问题:
var visible= false;
if(visible){
$('div').hide('slow')
}
visible
在这种情况下总是假的,因此你的div永远不会被隐藏。
答案 3 :(得分:0)
请尝试使用toggle
。看看这里的第二个例子:
以下是示例:
<!DOCTYPE html>
<html>
<head>
<style>
p { background:#dad;
font-weight:bold;
font-size:16px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<button>Toggle 'em</button>
<p>Hiya</p>
<p>Such interesting text, eh?</p>
<script>
$("button").click(function () {
$("p").toggle("slow");
});
</script>
</body>
</html>