我已经在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){ } );