【发布时间】:2019-11-15 08:25:34
【问题描述】:
我正在开发一个 Web 应用程序,其中所有页面的页眉和页脚都相同。我想要实现的是,当单击页眉中的按钮时,只更改页眉和页脚之间的页面部分。例如,有 3 个按钮 Home、Activity 和 Areas。如果我单击活动,则页面的页眉和页脚应保持不变,活动页面应位于页眉和页脚之间。我该怎么做?
【问题讨论】:
标签: javascript jquery html
我正在开发一个 Web 应用程序,其中所有页面的页眉和页脚都相同。我想要实现的是,当单击页眉中的按钮时,只更改页眉和页脚之间的页面部分。例如,有 3 个按钮 Home、Activity 和 Areas。如果我单击活动,则页面的页眉和页脚应保持不变,活动页面应位于页眉和页脚之间。我该怎么做?
【问题讨论】:
标签: javascript jquery html
我同意 rlemon。我认为 jQuery/AJAX 是您正在寻找的。例如:
<html>
<head>
<!-- Include Jquery here in a script tag -->
<script type="text/javascript">
$(document).ready(function(){
$("#activities").click(function(){
$("#body").load("activities.html");
});
});
</script>
</head>
<body>
<div id="header">
<a href="#" id="activities">Activities</a>
<!-- this stays the same -->
</div>
<div id="body">
<!-- All content will be loaded here dynamically -->
</div>
<div id="footer">
<!-- this stays the same -->
</div>
</body>
</html>
在这个简单的实现中,我刚刚创建了 2 个简单的 HTML 页面,index.html 将用作模板。还有activity.html,里面包含了我要动态加载的内容。
因此,如果我点击活动,它应该加载activity.html而不重新加载整个页面。
你可以从jquery.org下载jquery库
我没有对此进行测试,但它应该可以工作。
希望对你有帮助:-)
【讨论】:
links。你不做$("#activities").click(function()...,而是做$(".links").click(function()。在每个链接上,您可以有一个与您要加载的页面名称相匹配的属性。喜欢这个<a href="#" class="links" page="mypage">...</a>。要加载它们,您可以执行以下操作:$("#body").load($(this).attr("page")+".html")。现在您可以使用相同的逻辑拥有 10 多个页面。
页面交付时 - 合并页眉 + 正文 + 页脚。您可以将其视为一页。因此,如果您在标题中调用正文中的元素说“容器”,那么如果您将其包含在正文部分中,您将能够对其进行修改。
【讨论】:
您使用的是 PHP 还是服务器端页面?您可以只包含页眉和页脚。 Jquery 真的很复杂,因为只想在页面上包含页眉和页脚。
【讨论】:
您需要向服务器发出 AJAX 请求。服务器将回答 HTML 以在页眉和页脚之间“注入”。并且 AJAX 回调处理程序会将当前内容替换为新内容。
所有这些都是通过 jQuery 的快捷方式 load 函数为您完成的。见http://api.jquery.com/load/
【讨论】:
创建一个包含内容的 div,并给它一个唯一的类或 id。 然后在您的 jquery 代码中,在要用作导航的元素上绑定一个单击事件,并在该绑定中使用 $("#div").load("page.php") 或类似的东西将内容从另一个文件加载到div
【讨论】:
或者,这可以通过 iframe 来完成。父页面(带有页眉和页脚)可以控制 iframe 并强制它导航。
权衡:
【讨论】: