jQuery显示div然后消失

如果这是一个简单的问题我提前道歉,我有这个javascript代码:

$(document).ready(function() { $("#results").hide(); var html = $.ajax({ url: "ajax.php?db_list=get", async: false}).responseText; $("#submit").click(function () { $("#results").show(); }); }); 

我有一个看起来像这样的按钮:

 

当我点击提交按钮时,我想显示结果div并让它保持在那里,但是在Chrome中它会弹出然后立即消失,这是因为我文档顶部的hide()函数准备好了吗?

谢谢!

…这是因为我文档顶部的hide()函数准备好了吗?

大概。 我猜这个页面很新鲜。 如果你不想那样,请使用return false; 在处理程序中。

 $("#submit").click(function () { $("#results").show(); return false; }); 

event.preventDefault()

 $("#submit").click(function ( event ) { $("#results").show(); event.preventDefault(); }); 

最初将结果设置为通过CSS隐藏

 /* CSS */ #results { display: none; } 

不知道你为什么要跳过你应该使用$ .ajax的方式。 如果是GET请求,请使用$ .get …与.live绑定,因为它更好:)。 让它是异步的,因为你不希望你的服务器在发生错误时挂起……

 $(document).ready(function() { $('#submit').live('click', function(){ $.get('ajax.php?db_list=get', function(data){ $('#results').html(data); $('#results').show(); return false; }); }); }); 

而不是提交,使用此代码

  

现在你不必返回false; 或event.preventDefault(); 在你的JavaScript中