Reload javascript file after an AJAX request

前端 未结 10 725
粉色の甜心
粉色の甜心 2020-12-13 20:25

After the request, the new elements created are not recognized by the event handlers in my jQuery code.

Is there a way to reload the file to re-register these events

10条回答
  •  盖世英雄少女心
    2020-12-13 20:57

    I'm assuming that you mean that events you've registered for elements that have been replaced by with the results of your ajax requests aren't firing?

    Use .live() (see http://api.jquery.com/live/) to register the events against elements that the match the selector (including the new DOM elements created from the results of the ajax), rather than the results of the selector when the event handlers were first, which will be destroyed when they are replaced.

    e.g. replace

    $('div.someClass').click(function(e){
        //do stuff
    });
    

    with

    $('div.someClass').live('click', function(e){
        //do stuff
    });
    

    Important:

    While I've recommended using .live() this is for clarity as its syntax is similar to .bind(), you should use .on() if possible. See links in @jbabey's comment for important information.

提交回复
热议问题