0

概括:

我需要在每个 <div class="wrapSection"> 之后插入一个“返回顶部”链接。我已经成功使用以下内容:

<script>
$('.wrapSection').after('
    <div class="backToTop clearfix">
       <a href="#top" class="up">Back To Top </a>
    </div>
 ');
</script>

但是,我想在单击“返回顶部”时使用平滑滚动。考虑到这一点,我尝试了以下方法:

<script>
$('.wrapSection').after('
<div class="backToTop clearfix">
    <a href="javascript:void(0)" onclick="goToByScroll('top')" class="up">
      Back To Top
    </a>
</div>
');
</script>

那是行不通的。作为一个 jQuery 菜鸟,我做了看起来合乎逻辑的事情,这似乎永远不是正确的答案。

简而言之

或多或少,我需要在每个 <div class="wrapSection"> 之后动态显示它:

<div class="backToTop">
    <a class="top" href="javascript:void(0)" onclick="goToByScroll('top')">
        Back to Top
    </a>
</div>
4

1 回答 1

0

这是我想出的解决方案:

​$(document).ready(function() {
    // Markup to add each time - just give the element a class to attach an event to
    var top_html = '<div class="backToTop"><a href="#" class="top">Back To Top</a></div>';
    $(".wrapSection").after(top_html);

    // Use event delegation (see http://api.jquery.com/on/)
    $("body").on("click", ".top", function(e) {
        e.preventDefault();
        $("html,body").animate({ scrollTop: 0 }, "slow");
    });
});​

您可以在这里尝试 jsFiddle:http: //jsfiddle.net/F9pDw/

于 2012-12-23T21:57:55.430 回答