我有一个jquery'show'方法,我在网页上使用该方法在点击按钮时在div中显示大量隐藏数据,如
$(document).ready(function(){
$("button#show").click(function(){
$("div.show").show();
});
});
我以前用过这个没问题。在这种情况下似乎发生的是,当我单击文本显示的按钮时,页面进入加载状态。然后一旦完成,文本就会再次消失。无论我使用'show'还是'toggle',这似乎都会发生。以前有没有人遇到过这种行为?我不确定它是否是我的代码中的其他问题(我使用php生成div的内容)或jquery的一些问题。
[edit]这里是按钮的html
<br/><button id='toggle'>Show all</button>
<div>All the content goes here</div>
答案 0 :(得分:0)
听起来按钮是submit
按钮(请注意submit
is the default type of a button
,因此如果您没有type=
,则表示提交按钮)。您需要阻止默认操作(即提交表单)。但请注意,防止按钮本身的默认值可能不足以跨浏览器,您可能需要在表单上使用submit
处理程序并取消其中的内容。
同样如果&#34;按钮&#34;实际上是一个风格看起来像按钮的链接,你需要阻止默认(这是跟随链接)。
在jQuery事件处理程序中,您可以通过接受传递给您的event
参数并调用其preventDefault
方法来阻止默认值:
$(document).ready(function(){
$("button#show").click(function(event){
event.preventDefault();
$("div.show").show();
});
});
...或者从处理程序执行return false
,这将阻止默认和停止传播(冒泡)。
答案 1 :(得分:0)
我在这里发现了问题,只是将其作为答案,以防其他人帮助。我使用的其他一些代码阻止显示结束</form>
标记,这意味着页面被解释为<button>
属于表单。我认为浏览器将其视为TJ建议的新提交按钮,即使它没有这样编码,并因此重新提交表单。