我试图用jquery切换方法显示和隐藏div元素。我有一个链接按钮onclick调用页面上的JavaScript。单击链接按钮时,即使我声明javascript函数返回false,页面也会进行回发。有人知道如何解决这个问题?
function toggleDiv(){
$('#app').toggle("fast");
}
</script>
<form runat="Server">
<asp:LinkButton ID="LinkButton1" runat="Server" OnClientClick="toggleDiv(); return false;" Text="Show/Hide"></asp:LinkButton>
<div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
<p>jQuery Example </p>
</div>
</form>
答案 0 :(得分:2)
将你的js重写为以下内容,它应该可以正常工作
<script type="text/javascript">
$('#<%= LinkButton1.ClientID %>').click(function(e) {
$('#app').toggle("fast");
e.preventDefault();
});
</script>
<form runat="Server">
<asp:LinkButton ID="LinkButton1" runat="Server" Text="Show/Hide"></asp:LinkButton>
<div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
<p>jQuery Example </p>
</div>
</form>
答案 1 :(得分:0)
我会这样做:
$('#LinkButton1').click(function(e) {
$('#app').toggle('fast');
e.preventDefault();
});
然后只删除OnClientClick
事件。应该更容易一点,为你工作。
答案 2 :(得分:0)
您是否在开始时添加了准备好的文档代码?自从你 使用Asp服务器控件,控件由.net命名,也许linkbutton1没有被重新作为linkbutton1 id。我会写这样的代码:
$(function(){
$('a[id$=LinkButton1]').click(function() {
$('#app').toggle("fast");
return false;
});
});
答案 3 :(得分:0)
链接可能导致页面回发,这会将DIV重置为可见。解决此问题的最简单方法是从函数中返回false。
<script type="text/javascript">
$('#<%= LinkButton1.ClientID %>').click(function(e) {
$('#app').toggle("fast");
return false;
});
</script>
答案 4 :(得分:0)
如果查看html代码,它看起来像这样。注意“javascript:__ doPostBack
<a id="btn" href="javascript:__doPostBack('btn','')">Show/Hide</a>
<div id="app" style="background-color:Fuchsia; width:900px; height:300px;">
<p>jQuery Example </p>
</div>
答案 5 :(得分:0)
我认为问题在于您将Javascript语句放在与包含jquery的标记相同的脚本标记中。
我将您的代码更改为此,它解决了我的问题:
<script src="scripts/jquery-1.4.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$('#<%= LinkButton1.ClientID %>').click(function(e) {
$('#app').toggle("fast");
return false;
});
});
</script>