回发后我的 jQuery 代码不起作用

Posted

技术标签:

【中文标题】回发后我的 jQuery 代码不起作用【英文标题】:After Post Back my jQuery code not working 【发布时间】:2015-07-22 23:01:27 【问题描述】:

我有服务器端按钮。第一次 jQuery 工作正常,但下一次 jQuery 没有工作。我在更新面板中使用 jQuery。

下面是我的 Jquery 代码。

<script type="text/javascript" src="../../js/jquery-ui-1.11.4.min.js"></script> 
<script type="text/javascript">            
(function ($) 
    $('.mv-spinner').spinner(), $('.mv-action').button(),
    $('.table-mv-vouchers').tooltip(), $('.table-mv-vouchers select').selectmenu() 
)(jQuery)
</script> 

我也在页面加载功能中使用了我的代码,但没有工作。

 protected void Page_Load(object sender, EventArgs e)
       
        Page.ClientScript.RegisterStartupScript(typeof(UpdatePanel), "scrg", "<script type='text/javascript' src='../../js/jquery-ui-1.11.4.min.js'></script>");
        Page.ClientScript.RegisterStartupScript(typeof(UpdatePanel), "scr", "<script type='text/javascript'>  (function ($)  $('.mv-spinner').spinner(), $('.mv-action').button(), $('.table-mv-vouchers').tooltip(), $('.table-mv-vouchers select').selectmenu() )(jQuery) </script>");
 

我将如何解决这个问题?回发后 jQuery 不执行。提前致谢!

【问题讨论】:

【参考方案1】:

您的初始化将仅在文档准备就绪时运行(而不是在回发时)。由于您将控件放在 UpdatePanel 中,因此任何内容都会在回发后更新。

试试下面的建议

您需要在回发中重新创建 Jquery 代码,如下所示

<script type="text/javascript"> 
    $(document).ready(function() 
        //jquery code
    );

    var parameter = Sys.WebForms.PageRequestManager.getInstance();

    parameter.add_endRequest(function() 
        //jquery code again for working after postback
    );
</script>

这是我遇到同样问题后得到的解决方案,并且对我来说工作正常..check

更新:

如果上面的代码给出像Sys undefined 这样的错误,那么试试下面的代码。

<script type="text/javascript"> 

$(document).ready(function () 

    //jquery code

    var parameter = Sys.WebForms.PageRequestManager.getInstance();

    parameter.add_endRequest(function () 
        //jquery code again for working after postback
    );
);

</script>

【讨论】:

@Liton 它取自我的项目,但感谢长期向我提出建议的人.. 很棒的解决方案,谢谢@Sachu,让我从办公椅上跳了起来,大声欢呼! @dave 很高兴听到它有帮助【参考方案2】:

改成:

$('.ClassName').click(function(e) 
/////
);

到:

$(document).on("click", ".ClassName", function (e) 
/////
);

【讨论】:

以上是关于回发后我的 jQuery 代码不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 验证插件。回发后errorLabelContainer不起作用

回发后更新面板中的jquery事件处理程序不起作用[重复]

在mvc中回发后自动完成功能不起作用

jquery datepicker ms ajax updatepanel在回发后不起作用

RegisterClientScriptCode 在部分回发后不起作用

在 ASPX 中回发后按键不起作用