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

标签 jquery smooth-scrolling

smoothDivScroll如果在 $(window).load() 内调用,1.3 对我来说会失败。看这个jsFiddle .

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

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

但这在 Safari、Chrome 和 Opera 中也失败了。这些浏览器的控制台中不会显示任何错误。但它可以在 Firefox 中运行。浏览器版本是最新的。

有什么想法为什么会失败吗?

最佳答案

您粘贴的代码片段失败,因为执行该函数时不一定会加载 .scroller,因此返回 length 为 0。只需将其放入 $(document).ready 处理程序。或简称:

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

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

关于jquery - 如果在 .load() 事件处理程序中运行,smoothDivScroll 会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15856607/

相关文章:

javascript - 我的 javascript 平滑滚动无法滚动到 Firefox 中的正确位置,有人知道我做错了什么吗?

jQuery平滑div滚动左侧滚动速度比右侧快很多

javascript - 平滑滚动到一个组件会导致其他组件在 jquery/css 中模糊吗?

javascript - jQuery:需要更改特定的列表元素

javascript - 使用 .live() 和 item.length 绑定(bind)事件失败

jquery - 根据环境有条件地选择jquery的版本

c# - 平滑滚动的垂直文本以获得进度

javascript - jQuery-Javascript setTimeout-clearTimeout 不工作

jquery - 在指针下方的对象上触发鼠标悬停

javascript - mootools SmoothScroll 不起作用