当内容加载时,jquery'show'似乎恢复了

时间:2012-07-05 11:08:14

标签: jquery html

我有一个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>

2 个答案:

答案 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建议的新提交按钮,即使它没有这样编码,并因此重新提交表单。