如何将功能重置为AJAX响应?

时间:2013-12-02 09:40:41

标签: javascript html ajax jquery contentflow

我已将以下代码编写到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()

2 个答案:

答案 0 :(得分:0)

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

首先,我建议将异步属性设置如下: async:false

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

答案 1 :(得分:0)

首先确保cf._init()没有再次调用ajax ...为什么不在ajax完成或完成时调用init:

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