After Post Back my jQuery code not working

I have server side button. First time jquery is working fine but next time jQuery not wroking. I am using jQuery inside Update Panel.

Below is my Jquery code.

<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>

Also I have used my code in page load function but not working.
 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>");
 }

How I will fix this issue? jQuery does not perform after postback. Thanks in advance!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Your initialization will run only on document ready (not on postback). Since you place your control inside UpdatePanel, anything will updated after postback.

Try with the below suggestion

You need to recreate the Jquery Codes on postbacks like given below

<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>

this is the solution got once i got the same issue and worked fine for me..check

Updated:

If above code give error like Sys undefined then try below code.

<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>

Method 2

Change it from:

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

to:
$(document).on("click", ".ClassName", function (e) {
/////
});


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x