简体   繁体   中英

how to reset function into AJAX Response?

I have write the following code into AJAX to change the tab.

  $("a").click(function(event){
      if ($.browser.msie != true && $.browser.version != 8.0){
      event.preventDefault();
      if ($(this).parent().hasClass("current") == false){
        $.ajax({
          url: '/getvideofeed',
          success: function(data) {

            $('.flow').html(data);
            cf._init();


          },

          data: {'playlistid': $(this).attr("pid")}
        });
      $(".current").removeClass("current");
      console.log($(this).parent().addClass("current"));
      }}
    });

when i changed the TAB. the cf._init(); function getting called more than one time... means when i clicked 1st tab it will be called twice. when i clicked to next tab again cf._init() function will be called thrice and so on.

so my problem is how to reset cf._init() function after ajax called has been finished ? or how to called cf._init() function only once each time when i clicked any of the tab .

The function cf._init() should be executed on Ajax success if cf._init() called more than once, than probably the Ajax is being performed more than once.

For start I suggest putting async property as follows: async: false

so Ajax call will wait until it is finished. This way will enable you to debug how come Ajax call is made more than once.

First make sure cf._init() is not calling ajax again ... 2nd why not call init when ajax is done or complete :

 var request = $.ajax({"url":url});
 request.done( function(data){ } );

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM