为什么我的jquery不执行?
我试图用jquery切换方法显示和隐藏一个div元素。我有一个linkbutton,onclick调用页面上的javascript。单击linkbutton时,即使我将javascript函数声明为返回false,页面也会进行回发。有人知道怎么解决这个问题吗为什么我的jquery不执行?,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我试图用jquery切换方法显示和隐藏一个div元素。我有一个linkbutton,onclick调用页面上的javascript。单击linkbutton时,即使我将javascript函数声明为返回false,页面也会进行回发。有人知道怎么解决这个问题吗 function toggleDiv(){ $('#app').toggle("fast"); } </script> <form runat="Server"> <asp:
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>
函数toggleDiv(){
$('#app')。切换(“快速”);
}
jQuery示例
我会这样做:
$('#LinkButton1').click(function(e) {
$('#app').toggle('fast');
e.preventDefault();
});
然后只需删除
OnClientClick
事件。应该更容易一点,对你有用。将你的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>
$('#')。单击(函数(e){
$('#app')。切换(“快速”);
e、 预防默认值();
});
jQuery示例
您是否在代码开头添加了就绪文档?自从你
重新使用Asp服务器控件时,控件由.net命名,可能linkbutton1没有重新设计为linkbutton1 id。我会这样编写代码:
$(function(){
$('a[id$=LinkButton1]').click(function() {
$('#app').toggle("fast");
return false;
});
});
该链接可能导致页面回发,这会将DIV重置为可见。解决此问题的最简单方法是从函数返回false
<script type="text/javascript">
$('#<%= LinkButton1.ClientID %>').click(function(e) {
$('#app').toggle("fast");
return false;
});
</script>
$('#')。单击(函数(e){
$('#app')。切换(“快速”);
返回false;
});
如果查看html代码,它看起来是这样的。注意“javascript:uu 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>
jQuery示例
我认为问题在于,您将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>
$(文档).ready(函数(){
$('#')。单击(函数(e){
$('#app')。切换(“快速”);
返回false;
});
});
脚本开始标记在哪里?jQuery文件包含在哪里?这可能更像是您正在使用的ASP.NET MVC框架的问题。因此,我添加了该标记,以便您获得更好的覆盖率。NET将在客户端将ID重写为神秘的内容side@Mike:也适用于普通的HTML元素?Sun JSF也有类似的功能,但只有f或者组件生成的HTML。似乎可以工作,但页面仍会回发并再次显示div。我认为return false会有所帮助,但遗憾的是没有。Wierd问题。