jQuery和ASP.NET页面加载
问题描述:
我用Webcontrols测试jQuery和ASP.NET,并且在我的测试中,如果点击按钮,每次都会加载Side。 jQuery代码添加一个Css类到标签。jQuery和ASP.NET页面加载
我的aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Main.aspx.cs" Inherits="jQueryAnwendung.Main" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>jQuery Anwendung</title>
<script src="Scripte/jquery-1.8.0.min.js" type="text/javascript"></script>
<style type="text/css">
.CssKlasse
{
background:red;
font-size:40px;
}
</style>
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#<%= b1.ClientID%>").click(function (event) {
$("#<%= bild1.ClientID %>").slideToggle('slow');
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="b1" runat="server" text="Bild verkleinern/vergrößern"/>
<asp:Image ID="bild1" runat="server" ImageUrl="~/Theme/net.png" Width="50" Height="50" />
</div>
</form>
</body>
</html>
我能做些什么?
tarasov
答
处理程序内,防止按钮从正常行为:
$("#<%= b1.ClientID%>").click(function (event) {
event.preventDefault(); //prevent the control to act in its default way
$("#<%= bild1.ClientID %>").slideToggle('slow');
});
答
生成的ID更详细;打开浏览器并点击查看源文件。你会注意到它。将ID复制并粘贴到您的jQuery选择器中。
另一种方法是在您的.aspx
:$("<%= b1.ClientID %>")
内部拨打b1.clientID
,它将在运行时输出生成的clientID
。
由于ASP.NET 4,StaticMode
允许您完全控制生成的ID。欲了解更多信息,检查出来:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx
答
Asp按钮会导致当您单击它时回发 - 页面重新加载并且您的脚本未执行,您可以改用HTML按钮或尝试禁用此按钮上的回发。
你怎么想?如果您的按钮不应将消息发送到服务器,请勿使用
在开关语句后添加返回错误 – Ashirvad