繁体   English   中英

jQuery服务器控件单击事件未触发

[英]Jquery server control click event is not firing

Web表单上有服务器控件按钮,它位于updatepanel控件内部。

<asp:Button runat="server" Text="Save Details" ID="btnSave" Width="130px" 
ClientIDMode="Static"></asp:Button>

脚本在外部文件中。

$(document).ready(function () {
$('<%= btnSave.ClientID %>').click(function () {

        alert('msg');
    });
});

所有其他脚本运行正常,但是此脚本未触发。

您选择器中缺少#

$(document).ready(function () {
    $('#<%= btnSave.ClientID %>').click(function () {
//     ^ add # here
        alert('msg');
    });
});

好的一方面,您正在使用ClientIDMode="Static" ,另一方面,您正在尝试<%= btnSave.ClientID %>

使用<%= btnSave.ClientID %>将获取元素的渲染ID。 并且Button的ID将与您使用的ClientIDMode="Static" 仅当控件在页面上呈现多个时间时,才应使用它。 并使用<%= btnSave.ClientID %>页面增加额外的开销,并且每次渲染HTML都会碰到这一行。

结论就是这样。 使用'#btnSave'作为元素选择器,如果元素在页面上一次呈现,则避免使用<%= btnSave.ClientID %>

这将相同。

$(document).ready(function () {
    $("[id$='btnSave']").click(function () {
        alert('msg');
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM