2016-11-10 183 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