0

我在一个页面上有一个按钮,我已经编程了它可以滚动到一个大容器中的下一个 div。但是,每当我滚动到页面的左侧或右侧时,我也希望使用相同的按钮将浏览器窗口滚动到一定数量的像素上。

这是我尝试过的: 这会将容器滚动到 div 上。然后我尝试添加一个从“getOffset”说滚动窗口的函数

var colwidth = $('#container').width(),
contwidth = $('#contents').width(),
getOffset = function() {
    return parseInt($('#container').css('margin-left'));
};

$(".left").click(function(){
   if (getOffset() === 0) return false;
   function scrollWindow(scrollValue) {

        window.scrollBy(getOffset, 0);

    }
    $("#contents").animate({left: '+=' + colwidth},500);
    $("#container").animate({'margin-left': '-=' + colwidth},500);
 });
$(".right").click(function(){
    if (getOffset() === contwidth - colwidth) return false;

    $("#contents").animate({left: '-=' + colwidth},500);
    $("#container").animate({'margin-left': '+=' + colwidth},500);
    function scrollWindow(scrollValue) {

        window.scrollBy(getOffset, 0);

    }
 });

</script>

从逻辑上讲,它似乎应该可以工作,但是我的页面忽略了滚动窗口的功能。我将不胜感激任何帮助。我的逻辑哪里错了?谢谢

4

1 回答 1

0

要将事件处理程序附加到动态元素,如果您使用的是 jQuery 1.7+,请使用 jQuery .on() 方法。如果您使用的是旧版本,请在 .bind()、.delegate() 和 .live() jQuery 方法中进行选择。

于 2013-02-20T15:45:22.607 回答