滚动到顶部失败,因为页面加载到另一页面的ID中

时间:2019-05-17 21:03:32

标签: javascript jquery html

我的页面有一个ID(#C2),其他html页面将加载到该页面中(产生单个页面的效果)。加载是通过以下javascript完成的:

function ShowAjax(type) {
    var filename = "text_" + type + ".htm"
    $( "#C2" ).hide().load( filename ).fadeIn(500);

在加载到主页ID中的页面之一上,我需要“滚动到顶部”。为此,我使用了带有单击处理程序的div,该处理程序调用了javascript jquery函数(ScrollTop)。这是链接:

<div class="C1"><button class="button_01" id="first" onclick="ScrollTop();">Scroll to Top</button></div>

这是javascript / jquery:

<script>
function ScrollTop(){
$("a[href='#bkmkAA']").click(function() {
  $("html, body").animate({ scrollTop: 0 }, "slow");
  return false;}
});</script>

我的问题是,单击时它什么也没做,而Firefox开发者控制台说:
“ ReferenceError:未定义ScrollTop。”我的页面上都有js,并且此javascript绝对是在页面上定义的。

我的问题是,这是否与页面加载到主页ID(不太可能)或其他有关。

感谢任何想法或建议。

更新:

@Robin Zigmond-以下是页面上最后一段的外观:

<div class="h1_info" id="bkmk24"><b>Section Header 24</b></div><br><div class="set_01">Sentence 1.&nbsp;&nbsp;Sentence 2.&nbsp;&nbsp;Sentence 3.&nbsp;&nbsp;Sentence 4.<div class="C1"><button class="button_01" id="first" onclick="ScrollTop()";">Scroll to Top()_NEW</button></div></div><br>

<script>
function ScrollTop(){
$("a[href='#bkmkAA']").click(function() {
  $("html, body").animate({ scrollTop: 0 }, "slow");
  return false;}
});</script>

由此看来,脚本已在范围内,因为它紧接在上一段末尾。我想念什么?

1 个答案:

答案 0 :(得分:1)

您没有正确调用该函数。将您的HTML代码更改为以下内容:

myResponseObject.data: IObject

此外,您无需在<div class="C1"><button class="button_01" id="first" onclick="ScrollTop()">Scroll to Top</button></div> 函数中绑定事件。将其替换为以下内容,即可完成:

scrollTop()

纯JavaScript:

function ScrollTop(){
    $("html, body").stop().animate({ scrollTop: 0 }, "slow");
    return false;
}

如果要滚动到页面部分,请签出this blog post