0

我正在运行这个 JQuery 脚本来滚动 div

http://jsfiddle.net/sg3s/rs2QK/

jQuery(function($) {

        $('a.panel').click(function() {
            var $target = $($(this).attr('href')),
                $other = $target.siblings('.active');

            if (!$target.hasClass('active')) {
                $other.each(function(index, self) {
                    var $this = $(this);
                    $this.removeClass('active').animate({
                        left: $this.width()
                    }, 500);
                });

                $target.addClass('active').show().css({
                    left: -($target.width())
                }).animate({
                    left: 0
                }, 500);
            }
        });

    });

问题是,例如,如果这两个 div 上方有一个具有一定高度的标题,JQuery 将向下滚动窗口以获得相同的标题高度。

有什么办法可以防止这种情况发生吗?

谢谢

4

1 回答 1

0

在将事件绑定到锚元素时,在底部使用return false 。它将防止在 url 中添加 # 和您的问题。

   $(document).ready(function(){
    $('a.panel').click(function(e) {
        e.stopPropagation();
        var $target = $($(this).attr('href')),
            $other = $target.siblings('.active');

        if (!$target.hasClass('active')) {
            $other.each(function(index, self) {
                var $this = $(this);
                $this.removeClass('active').animate({
                    left: $this.width()
                }, 500);
            });

            $target.addClass('active').show().css({
                left: -($target.width())
            }).animate({
                left: 0
            }, 500);
        }
        return false;
    });
});
于 2013-08-02T11:44:51.733 回答