jQuery(函数($)在updatepanel中部分更新后不起作用

时间:2013-08-15 20:05:06

标签: c# jquery asp.net .net updatepanel

<script type="text/javascript">

    //http://digitalbush.com/projects/masked-input-plugin/
    jQuery(function ($) {
        //phone numbers
        alert("test");
        var txtInvestContactPhone = $("#<%=txtInvestContactPhone.ClientID%>");
        $(txtInvestContactPhone).mask("(999) 999-9999");


    });

</script>

我尝试将pagerequestmanager添加到页面内容中,但我认为我做错了:

<script type="text/javascript">
     Sys.WebForms.PageRequestManager.getInstance().add("jQuery(function ($)");
    </script>
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePageMethods="true">
    </asp:ToolkitScriptManager>

我也尝试在page_load事件中注册STARTUp Script,如下所示:

  protected void Page_Load(object sender, EventArgs e)
        {

            ScriptManager.RegisterStartupScript(this, typeof(Page), Guid.NewGuid().ToString(), "jQuery(function ($);", true);
            if (!Page.IsPostBack)
            {

但这只会打破我的手风琴,导致面板全部无法点击。

我认为我在这里正确的道路,只需要一些语法帮助。

1 个答案:

答案 0 :(得分:0)

jQuery(function ($);不是可以被调用的函数,就像......半个函数。

将初始化代码放在自己的函数定义中,然后从DOM ready处理程序和启动脚本中调用它。

function init() {
    //phone numbers
    alert("test");
    var txtInvestContactPhone = jQuery("#<%=txtInvestContactPhone.ClientID%>");
    jQuery(txtInvestContactPhone).mask("(999) 999-9999");
});

jQuery(function () { init(); });

...

ScriptManager.RegisterStartupScript(this, typeof(Page), Guid.NewGuid().ToString(), "init();", true);