Jquery 防止Ajax加载多次加载src

Jquery 防止Ajax加载多次加载src,jquery,ajax,loading,Jquery,Ajax,Loading,我正在通过Ajax加载将一堆LIs加载到一个HTML页面中(下面是调用代码),这很好,但是在加载LIs的HTML页面后,它似乎一次又调用了4次相同的HTML源代码,并且把一切都搞糟了。。。我做错了什么 $.ajax({ cache: false, url: 'slides.html', success: function(data) { JWLoadInitialSlider(); $(this).show(); $(".slide

我正在通过Ajax加载将一堆LIs加载到一个HTML页面中(下面是调用代码),这很好,但是在加载LIs的HTML页面后,它似乎一次又调用了4次相同的HTML源代码,并且把一切都搞糟了。。。我做错了什么

$.ajax({
cache: false,
url: 'slides.html',
success: function(data) {



         JWLoadInitialSlider();

         $(this).show();

         $(".sliderLoader").fadeOut(3000);

         setTimeout(function(){
         $(".carouselContentWrapper").css("height","auto");
         }, 2000);




}
});

有没有办法在加载并执行成功函数后终止此函数?

在ajax调用之外定义一个变量

var SlideLoaded = "no";
然后在ajax成功函数中执行以下操作:

if(SlideLoaded=="no"){
  SlideLoaded = "yes";
  JWLoadInitialSlider();
}

那么,如果ajax调用被多次调用,它就不会再次调用滑块了。

您还有代码的其他部分吗?ajax从何处调用?这个被截断的JS(如上所述)在HTML中被内联调用,以从slides.HTML(它只是加载
  • 数据)中提取数据,如果您放入警报(“某物”);在ajax之前,还有另一个警报(“Function success”);成功功能内部发生了什么?奇怪的是,如果您内联调用ajax,它应该只执行一次。奇怪的是,这里有$(this).show(),通常使用$(this)。当您在从事件侦听器(如$(“.div”)调用的函数中时。单击(etc等)成功函数中的警报我在初始加载完成后首先看到它-这工作正常(我正在观察Firebug中加载的源HTML),然后一旦该警报被取消,页面就会加载更多版本的slides.html文件…每次加载新版本时,我都会再次看到加载的警报…似乎一旦调用成功函数,它就会再次调用加载函数…删除成功函数中的所有内容发生了什么?这显然会起作用,但是更有趣的问题是,为什么它会反复调用AJAX函数。像这样的解决方法往往会将问题转移到另一个地方,而不是实际解决问题。欣赏这种方法,但它不起作用-在初始加载成功后,AJAX加载函数会被调用4次……有更好的方法通过AJAX加载吗$('.bxslider').load(“slides.html”);似乎工作得很好-但我看不出如何在加载成功时添加JWLoadInitialSlider();如果使用workarrund时问题仍然存在,那么JWLoadInitialSlider函数不是问题所在,能否在Slideloaded=“yes”之后添加警报(“某些内容”);看看它是否也发出了4次警报?认为问题在于Ajax加载调用-刚刚尝试使用$('.bxslider').load(“slides.html”,function(){alert(“load success”);JWLoadInitialSlider();//淡出加载程序div$(“.sliderLoader”).fadeOut(3000);});现在就可以工作了!