Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果在.load()事件处理程序中运行,则smoothDivScroll将失败_Jquery_Smooth Scrolling - Fatal编程技术网

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

Jquery 如果在.load()事件处理程序中运行,则smoothDivScroll将失败,jquery,smooth-scrolling,Jquery,Smooth Scrolling,如果在$(window.load()内调用,则1.3将失败。看这个 .load()事件处理程序已弃用,因此我尝试使用jQuery插件,如下所示: (function ($) { if($('.scroller').length) $('.scroller').imagesLoaded(function() { $('.scroller').smoothDivScroll({}); }); })(jQuery); 但这在Safari、Chrome和Opera中也失

如果在
$(window.load()
内调用,则1.3将失败。看这个

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

(function ($) { if($('.scroller').length)
    $('.scroller').imagesLoaded(function() {
        $('.scroller').smoothDivScroll({});
    });
})(jQuery);
但这在Safari、Chrome和Opera中也失败了。这些浏览器的控制台中不会显示任何错误。不过它在Firefox中也能工作。浏览器版本是最新的


知道为什么会失败吗?

粘贴的代码段失败,因为执行该函数时不一定加载
.scroller
,因此返回的
长度为0。只需将其放入
$(文档).ready
处理程序中即可。或简称:

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

JSFIDLE为您添加了这一功能,但在脚本中,您需要将依赖于DOM元素的代码包装到这样的函数中。

为什么需要在load事件中调用它?我只是在没有加载的情况下尝试了一下,效果很好(平滑滚动)。这有什么意义?它是在所有图像完全加载后运行回调函数。尽管.load()在这方面有一定的局限性。我想它以前不会运行,但可能会在以后运行。这也是我尝试使用imagesLoaded插件的原因。小提琴能用吗?它被设置为使用onDomReady,所以您尝试过$(文档)了吗?准备好了吗?@iGanja smoothDivScroll确实可以使用
$(文档)。准备好()
,但我的问题是关于使用
.load()
。我想我错过了一些东西。jQuery通常建议在大多数情况下使用$(document).ready(),所以如果它能工作,我不明白为什么必须使用.load()?