2016-11-10 185 views
0

jQuery代码:jQuery的初始化函数不工作

$(window).load(function(){ 
    $("#slider").flexslider({ 
     animation: "slide", 
     controlNav: false, 
     directionNav: false, 
     init: function (slider) { 
      // lazy load 
      $("img.lazy").slice(0,1).each(function() { 
       alert('init running'); 
       var src = $(this).attr("data-src"); 
       $(this).attr("src", src).removeAttr("data-src").removeClass("lazy"); 
      }); 
     }, 
     before: function (slider) { 
      // lazy load 
      $("img.lazy").slice(0,2).each(function() { 
       alert('before running'); 
       var src = $(this).attr("data-src"); 
       $(this).attr("src", src).removeAttr("data-src").removeClass("lazy"); 
      }); 
     }, 
     animationLoop: false, 
     slideshow: false, 
     sync: "#carousel", 
    }) 
}) 

的jsfiddle网址:

https://jsfiddle.net/6z5L31tg/ 

初始化功能无法正常工作。即使它没有提醒我。你能向我解释为什么它不起作用吗?以及如何解决此问题?我英语不好。如果我犯了任何语法错误或拼写错误,请道歉。

+1

你的网页上有多少'$(“img.lazy”)“? – krillgar

+1

也许很愚蠢,但是,你称它为某个地方吗? – Roberrrt

+0

可能超过5 –

回答

1

您正在使用​​事件,该事件被jQuery 3.0中相同的名为ajax方法取代。

upgrade guide

事件.load()方法冲突与AJAX .load()方法。由于定义了DOM方法的 方式,因此不能将window.onerror与 .error()方法一起使用。如果您需要通过这些 名称附加事件,请使用.on()方法,例如,将$(“img”)。load(fn)更改为 $(img).on(“load”,fn)。

我还建议您在DOM准备就绪时加载滑块。我更新了你的小提琴:https://jsfiddle.net/6z5L31tg/2/

+1

正确的,现在正确的方法是$(window).on('load',...)'。更多信息给Thore准备处理程序:http://stackoverflow.com/questions/38585373/why-is-my-load-event-function-not-beeing-executed-after-switching-to-jquery-3 – eisbehr