Javascript 使用jquery选择Asp.net控件

Javascript 使用jquery选择Asp.net控件,javascript,jquery,asp.net,user-controls,Javascript,Jquery,Asp.net,User Controls,我有一个小问题,我似乎无法使用jquery选择用户控件ID。用户控件是一个消息面板,在操作发生时显示。因此,当页面加载时,此消息面板不是页面的一部分。只有当用户与页面交互(即添加图像)时,消息面板才会显示消息 页面控件 Javascript 萤火虫表演什么 我可以使用jquery选择其他ID,但不能选择这个ID。我还应该指出,我在页面上使用的是ModalPopupXtender。因此,当我提交数据时,页面正在进行回发。我尝试使用委托,因为ID是在页面加载后添加到DOM的,但它不起作用 有什么想法

我有一个小问题,我似乎无法使用jquery选择用户控件ID。用户控件是一个消息面板,在操作发生时显示。因此,当页面加载时,此消息面板不是页面的一部分。只有当用户与页面交互(即添加图像)时,消息面板才会显示消息

页面控件

Javascript

萤火虫表演什么

我可以使用jquery选择其他ID,但不能选择这个ID。我还应该指出,我在页面上使用的是ModalPopupXtender。因此,当我提交数据时,页面正在进行回发。我尝试使用委托,因为ID是在页面加载后添加到DOM的,但它不起作用

有什么想法吗

谢谢你能试试这个吗

    <script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("#<%=PageContent_IMG1_messagepanel1_divMessageBox.ClientID%>").click(function () {
            alert("handler called");
        });
   });
这样,你就可以确定这是客户端的id了


当ASP.NET呈现服务器端控件时,它会为它们提供不同于其服务器ID的唯一客户端ID,如果您不确定,您可以检查ASP.NET页面的源以获取客户端用户控件的ID,您必须设置其ClientID属性。

基本上,问题是您正在$document.ready添加处理程序。div还不存在,所以这个调用什么都不做

在div点击页面后,需要附加click处理程序。有几种方法可以实现这一点:

一,

使用add_endRequest,在异步查询后执行document.ready代码:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
    $("#PageContent_IMG1_messagepanel1_divMessageBox").click(function () {
        alert("handler called");
    });
});
或2

显式生成addHandler函数并使用asp.net中的注入使其生效:

在JS中:

function addHandler (ctrlID) {
    $("#" + ctrlID).click(function () {
        alert("handler called");
    });
};
在ASP.Net中:

使用RegisterStartupScript调用addHandler,传递需要添加处理程序的控件的ClientID。有关RegisterStartupScript的信息,请参阅


第一个选项的效率低于第二个,因为它将在所有回发之后执行,但更易于实现。

它是否像jquery选择器开头的一样简单?-应该是单张吗?对不起,我粘贴代码的地方打错了。还有别的地方出错了。您的代码很好,请检查是否有asp.net ajax ModalPopupXtender?你如何回发数据?显示相关标记/代码。编译错误说明:在编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码。编译器错误消息:CS0103:名称“PageContent\u IMG1\u messagepanel1\u divMessageBox”在当前上下文中不存在。当页面首次加载时,它不是页面的一部分。我在这里没有这样做,但您应该使用,而不是硬编码完整的clientID,因为它可能会随着您处理页面中的其他元素而更改。谢谢,这已成功!我知道jquery看不到div,但不确定如何解决这个问题。
    <script language="javascript" type="text/javascript">
    $(document).ready(function () {
        $("#<%=PageContent_IMG1_messagepanel1_divMessageBox.ClientID%>").click(function () {
            alert("handler called");
        });
   });
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
    $("#PageContent_IMG1_messagepanel1_divMessageBox").click(function () {
        alert("handler called");
    });
});
function addHandler (ctrlID) {
    $("#" + ctrlID).click(function () {
        alert("handler called");
    });
};