1

我使用 Web 控件测试 jQuery 和 ASP.NET,并且在我的测试中,如果我单击按钮,则每次都加载新的 Side。jQuery 代码将 Css 类添加到标签。

我的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>

我能做些什么?

塔拉索夫

4

4 回答 4

1

生成的id更加冗长;打开浏览器并单击查看源代码。你会注意到它。将 ID 复制并粘贴到您的 jQuery 选择器中。

另一种方法是b1.clientID在你的.aspx:内部调用$("<%= b1.ClientID %>"),它将clientID在运行时输出生成的。

从 ASP.NET 4 开始,StaticMode您可以完全控制生成的 ID。有关更多信息,请查看:http: //msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx

于 2012-08-23T08:40:35.383 回答
1

如果您使用 asp 控件,您有两种方法来处理它

首先是在你的 jQuery 函数中进行更改"#b1"#l1"更改"<%= #b1.ClientID%>""<%= #l1.ClientID %>"

其次是添加属性ClientIDMode="Static"到你的asp:Buttonasp:Label

于 2012-08-23T08:41:04.807 回答
1

当您单击 Asp 按钮时会导致回发 - 页面重新加载并且您的脚本未执行,您可以改用 HTML 按钮或尝试禁用此按钮上的回发。

于 2012-08-23T08:44:33.387 回答
1

在您的处理程序中,防止按钮正常运行:

$("#<%= b1.ClientID%>").click(function (event) {
  event.preventDefault(); //prevent the control to act in its default way
  $("#<%= bild1.ClientID %>").slideToggle('slow');
});
于 2012-08-23T09:11:12.570 回答