【问题标题】:How to get AJAX to load page at top of div如何让 AJAX 在 div 顶部加载页面
【发布时间】:2019-07-03 21:16:15
【问题描述】:

我的网站包含一个使用 ajax 加载不同页面的 div。单击按钮时,可以加载新页面,并且页面始终显示在该 div 中。

问题是如果我转到一个新页面并向下滚动而不滚动回该页面的顶部,新页面将加载到页面顶部下方的相同位置,而不是页面顶部。我想强制所有页面加载到顶部。

以下是相关的页面元素:

div(页面内容所在的地方):

<div class="main_text">
<div id="C2"><span style="color:black">MTX</span></div>
</div>

按钮:

<div class="C1"><br><button class="button_01" id="btn07" onclick="HideDropdown(); ShowAjax(7);">Page 7</button></div>

AJAX 代码:

<script>
function ShowPage(type) {
    var filename = "page_" + type + ".htm"
    $( "#C2" ).hide().load( filename ).fadeIn(500);
}
</script>

最重要的一行是:

$( "#C2" ).hide().load( filename ).fadeIn(500);

在我拥有的每一页的顶部:

<div id="bkmk00"></div>

我想打开页面顶部的每个页面(在“bkmk00”处)。我看到一个帖子说我可以添加一个 id 名称,它会加载该 ID 的页面:

$( "#C2" ).hide().load( filename "bkmk00" ).fadeIn(500);

但是,它不会加载任何内容。相反,Firefox 67 开发控制台会为这个 ajax 函数调用显示“SyntaxError: missing ) after argument list”,它指向文件名后面的字符 37。看起来我无法添加第二个参数“bkmk00”。

我的问题是,如何在要加载的页面顶部的“bkmk00”处加载页面?

【问题讨论】:

  • 您在“.htm”之后缺少行终止;
  • @IMustBeSomeone - ajax 调用在上面,在
  • 文件名“bkmk00”,您缺少“#bkmk00”

标签: javascript jquery ajax


【解决方案1】:
<script>
function ShowPage(type) {
    var filename = "page_" + type + ".htm"
    $( "#C2" ).hide().load( filename ).fadeIn(500);
}
</script>

你很接近但不完全,加载函数有2个参数,输入文件和函数回调:

var filename = "page_" + type + ".htm"
$( "#C2" ).hide()
$( "#bkmk00" ).load(filename, function(){
    $( "#bkmk00" ).fadeIn(500);
});

【讨论】:

  • 该功能现在可以正常工作,但不会在页面顶部加载。您显示的内容仅使 fadeIn 成为单独功能的一部分。我的问题是:如何让它加载到页面顶部?除非我遗漏了什么,否则您显示的内容似乎并没有这样做。
  • 我的错,我在函数内部输入了错误的 id,现在应该可以工作了。
  • 谢谢。我现在正在尝试。
  • 如果您设置了 jsfiddle,我们可以为您提供更好的帮助。不知道 div 在哪里有点困难。
  • 我现在的问题是它像我最初写的那样工作,但没有加载到顶部。我只是用你的代码替换了它,它不加载页面。 FF 开发控制台不报告任何错误。我可以试试 Chrome 看看有没有报错。
猜你喜欢
  • 2023-03-20
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多