【发布时间】:2011-06-24 09:24:25
【问题描述】:
需要使用一个按钮来切换 div 的显示和隐藏 我的代码看起来像这样
function showTable(number){
$('#div_'+number).show('slow');
$('#button_'+number).html("Hide Table").click(function(){
hideTable(number);
return false;
});
}
function hideTable(number){
$('#div_'+number).hide('slow');
$('#button_'+number).html("Show Table").click(function(){
showTable(number);
return false;
});
}
<div id="div_1" style="display:none"></div>
<button id="button_1" onClick="javascript:showTable(1)">Show Table</button>
<div id="div_2" style="display:none"></div>
<button id="button_2" onClick="javascript:showTable(2)">Show Table</button>
<div id="div_1" style="display:none"></div>
<button id="button_3" onClick="javascript:showTable(3)">Show Table</button>
该功能起初运行良好。但是在我显示和隐藏一次之后,每当我尝试再次显示它时,它就会开始自行链接显示/隐藏/显示/隐藏而无需任何点击。我做的越多,链接的时间就越长。似乎这只是一个循环,每次循环次数加倍(如显示/隐藏 2/4/8/16/32 次 ....)我做的越多,它循环的时间就越长。有人知道发生了什么吗?
我试图删除 hideTable 函数中的点击部分,循环停止但仍然每当我尝试点击 showTable 时,它会自动显示然后隐藏它,就像它自动执行点击函数中的内容一样,无需任何点击.. .
还有没有使用jquery标记样式来调用函数而不是使用onclick?我知道我可以这样做
$("#button_1").click(function(){......................});
$("#button_2").click(function(){......................});
$("#button_3").click(function(){......................});
但是无论如何我可以将它们全部组合成一个函数并且仍然能够判断单击了哪个按钮?因为我需要一种方法来跟踪显示和隐藏哪个 div,并更改相应按钮中的文本。非常感谢您提前。 m(_ _)m
【问题讨论】:
-
很难准确地说出您想要做什么。您发布的代码中的标记都搞砸了;按钮应该在切换的
<div>元素内部还是外部?
标签: javascript jquery