您好我一直试图用jquery制作一个显示/隐藏切换按钮,但我只能找到显示div的按钮,但没有隐藏它的按钮
下面的是我发现的一个显示div的例子,但除非你点击另一个按钮,否则它不会让你隐藏它。我希望能够使用相同的按钮来显示和隐藏div。我的页面上有多个div,并且希望能够使用jquery而不是javascript。
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$(".buttons").click(function () {
var divname= this.value;
$("#"+divname).show("slow").siblings().hide("slow");
});
});
</script>
</head>
<body>
<div id="buttonsDiv">
<input type="button" id="button1" class="buttons" value="div1"></input>
<input type="button" id="button2" class="buttons" value="div2"></input>
<input type="button" id="button3" class="buttons" value="div3"></input>
<input type="button" id="button4" class="buttons" value="div4"></input>
</div>
<div>
<div id="div1" style="display:none">
Hello World
</div>
<div id="div2" style="display:none">
Test
</div>
<div id="div3" style="display:none">
Another Test
</div>
<div id="div4" style="display:none">
Final Test
</div>
</div>
</body>
</html>
答案 0 :(得分:5)
试试这个
$(".buttons").click(function () {
var divname= this.value;
$("#"+divname).slideToggle().siblings().hide("slow");
});
答案 1 :(得分:4)
更简单的是使用控件自己的切换功能。
$('.toggleButtons').click(function()
{
$('control1, control2, ...').toggle();
});
答案 2 :(得分:1)
使用以下方法切换脚本:
<script>
$(document).ready(function(){
$(".buttons").click(function () {
$("#buttonsDiv div").hide()
var divname= this.value;
$("#"+divname).show();
});
});
</script>
答案 3 :(得分:1)
$(document).ready(function(){
$(".buttons").click(function () {
var div= $("#"+this.value);
div.toggle("slow").siblings().hide("slow");
});
});
应该这样做。
编辑:
切换的功劳归于@AtoMerZ。他先拥有它。
答案 4 :(得分:0)
这是一个非常简单的脚本:
$('.buttons').click(function()
{
var elementToShowOrHide = $('#' + $(this).val());
if(elementToShowOrHide.is(':visible'))
elementToShowOrHide.hide();
else
elementToShowOrHide.show();
});
然后每次点击按钮都会切换另一个元素的可见性。
答案 5 :(得分:0)
jQuery .toggle()方法可以帮助你:
$(".buttons").click(function () {
var divname= this.value;
$("#"+divname).toggle();
});
答案 6 :(得分:0)
您可以使用toggle
方法显示和隐藏元素。这将单独显示/隐藏每个div:
$(".buttons").click(function () {
$("#" + this.value).toggle("slow");
});
答案 7 :(得分:0)
假设您希望在显示新的div
时隐藏所有其他$('.buttons').click(
function() {
$('div > div').hide();
$('div > div').eq($(this).index()).show();
});
:
{{1}}