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/
init函数无效。即使它没有提醒我。你能告诉我为什么它不起作用吗?以及如何解决此问题?我英语很弱。如果我犯了任何语法或拼写错误,请向我道歉。
答案 0 :(得分:1)
您正在使用.load()
事件,该事件在jQuery 3.0中被相同的命名ajax方法取代。
事件.load()方法与ajax .load()方法冲突。该 .error()方法不能与window.onerror一起使用,因为 方法定义了DOM方法。如果您需要通过这些附加事件 名称,使用.on()方法,例如将$(“img”)。load(fn)更改为 $(img).on(“load”,fn)。
我还建议你在DOM准备好时加载滑块。我更新了你的小提琴:https://jsfiddle.net/6z5L31tg/2/