我已将以下代码编写到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()
。
答案 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){ } );