0

我不能让我的 Jquery 工作。我输入了一些代码,应该可以很好地向下滚动到页面下方的 div。我在 a 标签和 jquery 周围添加了 HTML。

HTML

<div id="facebookbanner">   
    <div id="facebookbannertext">
        <div id="knapper">
            <div class="btn_apps"><a href="#fbeksempler"></a></div>
            <div class="btn_bestil"><a href="#"></a></div>
        </div>
     </div>
     <div id="facebookbannerbillede">   
     </div>
 </div>

jQuery

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>

$('#fbeksempler a').on('click', function(evt){
    evt.preventDefault();
    var target = $(this).attr('href');
    $('html, body').stop().animate({scrollTop: $(target).offset().top}, 2000);
});

</script> 
4

3 回答 3

1

看来主要问题是您在使用该.attr()方法时将目标变量设置为字符串。然后,您尝试滚动到该目标的顶部,该目标不是表示 DOM 元素的 jQuery 对象。

我假设您打算做的是在页面上的某处找到 ID 等于href链接的 jQuery 对象。

$('#facebookbanner a').on('click', function (evt) {
    evt.preventDefault();
    var contentId = $(this).attr('href');
    var content = $(document).find(contentId);
    $('html, body').stop().animate({
        scrollTop: $(content).offset().top
    }, 2000);
});

jsfiddle

于 2013-02-13T13:20:03.970 回答
0

尝试将您的功能包装在 DOMReady 事件中:

$(function() {
    $('#fbeksempler a').on('click', function(evt){
        evt.preventDefault();
        var target = $(this).attr('href');
        $('html, body').stop().animate({scrollTop: $(target).offset().top}, 2000);
    });
});
于 2013-02-13T12:27:03.767 回答
0

我认为问题在于协议相对 URL//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js在本地测试时不起作用。
也许试着http://code.jquery.com/jquery-1.9.1.min.js看看这是否适合你。

于 2013-02-13T15:14:58.783 回答