在asp:按钮上的jQuery Click事件

Sac*_*aur 3 asp.net jquery

我有一个服务器端按钮

<asp:Button ID="btnSummary" runat="server" OnClick="btnSummary_Click" Text="Next" />
Run Code Online (Sandbox Code Playgroud)

我想使用其ID附加jQuery Click事件,而不是使用替代类属性方式.

我试图将click事件附加为:

$("#btnSummary").click(function() 
        {
            alert("1");
        });
Run Code Online (Sandbox Code Playgroud)

但是,它的click事件不会被触发.另外,我也试过了$("id[$btnSummary]").

有没有办法在没有按钮上的class属性的情况下使用jQuery在asp:button上附加click事件?

Rus*_*Cam 13

您可以在此处找到一些选项

如何阻止ASP.NET更改id以使用jQuery

编辑:

在阅读了对其他答案的评论之后,听起来你需要在ASP.NET AJAX的pageLoad中绑定onclick事件处理程序,以便它在每次回发时绑定,包括异步回发.另一方面,$(document).ready()仅在初始页面加载时绑定一次

function pageLoad(sender, args)
{
     $("#<%=btnSummary.ClientID %>").click(function() 
    {
        alert("1");
    });
}
Run Code Online (Sandbox Code Playgroud)

Dave Ward写了一篇关于pageLoad和$(document).ready()之间区别的文章.


小智 9

将ClientIDMode ="Static"添加到您的asp:按钮,如下所示:

<asp:Button ID="Button1" runat="server" ClientIDMode="Static" Text="Button" />
Run Code Online (Sandbox Code Playgroud)

这将使ID保持不变.它禁用此控件的自动生成的名称.

以下是此参考:http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx


Óla*_*age 5

  1. 运行站点时,检查id属性是否在html源中.
  2. 您是否在文档就绪功能中具有单击功能?

-

$(document).ready(function() {
    // put all your jQuery goodness in here.
});
Run Code Online (Sandbox Code Playgroud)

编辑:

由于它的服务器端控件和ID发生了变化,因此您需要使用变量动态更新每个页面加载的javascript.