如果在.load()事件处理程序中运行,smoothDivScroll将失败

时间:2013-04-06 22:09:03

标签: jquery smooth-scrolling

如果在$(window).load()内调用,

smoothDivScroll 1.3就失败了。请参阅此jsFiddle

不推荐使用.load()事件处理程序,因此我尝试使用imagesLoaded jQuery插件,如下所示:

(function ($) { if($('.scroller').length)
    $('.scroller').imagesLoaded(function() {
        $('.scroller').smoothDivScroll({});
    });
})(jQuery);

但在Safari,Chrome和Opera中也失败了。这些浏览器的控制台中不显示任何错误。它虽然适用于Firefox。浏览器版本是最新的。

为什么会失败的任何想法?

1 个答案:

答案 0 :(得分:0)

您粘贴的代码段失败,因为执行该函数时未必加载.scroller,因此返回length为0.只需将其放在$(document).ready处理程序中即可。或简称:

$(function() {
    $('.scroller').smoothDivScroll({});
});

JSFiddle为您补充说,但是在您的脚本中,您需要将依赖于DOM元素的代码包装到这样的函数中。