如何将函数重置为AJAX响应

how to reset function into AJAX Response?

本文关键字:AJAX 响应 函数      更新时间:2024-02-09

我已经在AJAX中编写了以下代码来更改选项卡。

  $("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"));
      }}
    });

当我更改TAB时,cf._init();函数被调用了不止一次。。。意味着当我点击第一个选项卡时,它将被调用两次。当我再次点击下一个选项卡时,cf_init()函数将被调用三次,依此类推

所以我的问题是如何在ajax调用完成后重置cf._init()函数?或者如何在每次单击任何选项卡时只调用cf._init()函数一次。

函数cf_init()应该在Ajax成功时执行如果cf_init()被调用不止一次,那么Ajax可能被执行不止一次。

首先,我建议将async属性设置如下:async:错误

所以Ajax调用将一直等到它完成。这种方式将使您能够调试Ajax调用是如何进行多次调用的。

首先确保cf_init()不再调用ajax。。。第二,为什么不在ajax完成或完成时调用init:

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