Calling a jQuery function inside html return from an AJAX call

前端 未结 6 2125
梦毁少年i
梦毁少年i 2020-12-02 17:45

I am working on a web page that is using jQuery. I have an Ajax call that gets data from the server and updates a div. Inside that data there is a jQuery function, but the f

相关标签:
6条回答
  • 2020-12-02 18:06

    Changing

    <script type="text/javascript">
    ...
    </script>
    

    To:

    <script>
    ...
    </script>
    

    Fixed the issue for me.

    0 讨论(0)
  • 2020-12-02 18:07

    Well, you can use jQuery load() function: http://docs.jquery.com/Ajax/load#urldatacallback As a callback you can define function which will be executed after loading new content example:

    $("#feeds").load("new_content.html",, doSomething());

    and in new_content.html you can define function doSomething()...

    0 讨论(0)
  • 2020-12-02 18:18

    for ajax.net the endRequestHandler(sender, args) solution works fine though

    0 讨论(0)
  • 2020-12-02 18:22

    I had a similar problem where I wanted to add little jquery date pickers to a couple fields I was retrieving via ajax. here is what I did to get around it... just quick and dirty. Instead of returning this whole block from my ajax call:

    <script type="text/javascript">
        $(function() {
             $('input').myFunction('param');                         
        }); 
    </script>
    <p> other html </p>
    

    I would return this (note the made up |x| separator)

        $(function() {
             $('input').myFunction('param');                         
        }); 
    
    |x|
    
    <p> other html </p>
    

    Then when I received the data back via ajax, I split the return value into 2 parts: the javascript to be executed, and the html to display:

     r = returnvalfromajax.split("|x|");       
     document.getElementById('whatever').innerHTML = r[1];  
     eval(r[0]);
    
    0 讨论(0)
  • 2020-12-02 18:23

    If you want JavaScript tag evaluation, with html content, you should set the dataType option of the ajax call to "html":

    $.ajax({
      type: "GET",
      url: "yourPage.htm",
      dataType: "html"
    });
    

    Or dataType "script", if you want to load and execute a .js file:

    $.ajax({
      type: "GET",
      url: "test.js",
      dataType: "script"
    });
    

    more info here: Ajax/jQuery.ajax

    0 讨论(0)
  • 2020-12-02 18:23

    have you tried Sys.WebForms.PageRequestManager.add_endRequest method?

        $(document).ready(function()
        {
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);           
        }
        );
        function endRequestHandler(sender, args)
        {
            // whatever
        }
    
    0 讨论(0)
提交回复
热议问题