jQuery init函数无法正常工作

时间:2016-11-10 15:35:34

标签: 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/

init函数无效。即使它没有提醒我。你能告诉我为什么它不起作用吗?以及如何解决此问题?我英语很弱。如果我犯了任何语法或拼写错误,请向我道歉。

1 个答案:

答案 0 :(得分:1)

您正在使用.load()事件,该事件在jQuery 3.0中被相同的命名ajax方法取代。

来自upgrade guide

  

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

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