我需要你的帮助。 我有2个div:侧边栏和内容。在SIDEBAR中我有一些链接(a b c),当我按下“a”链接时,我想在CONTENT div中打开pageA.html,当我按下“b”链接 - pageB.html等等。 我尝试过iframe,但我知道这不是一个好主意,有什么建议吗? 提前致谢
答案 0 :(得分:3)
使用jQuery的load()函数。它只是在没有Angular或框架集的情况下完成你正在寻找的东西。
<强> HTML 强>
<h1>My Website</h1>
<div class="nav">
<ul>
<li><a id="nav_a" href="#">Page A</a></li>
<li><a id="nav_b" href="#">Page B</a></li>
</ul>
</div>
<div id="content">Here's some default content (maybe Page A?)</div>
<强>的Javascript 强>
$(function(){
$("#nav_a").on("click", function(){
$("#content").load("pageA.html");
});
$("#nav_b").on("click", function(){
$("#content").load("pageB.html");
});
});
请注意,您无法加载域外的网页,但听起来并不像您尝试这样做。
答案 1 :(得分:0)
有很多方法可以解决这个问题。我建议使用AngularJS。一开始可能看起来令人生畏,但它值得,并且可以很容易地达到你想要的效果。
<!-- include angular -->
<script src="angular.js"></script>
<div ng-app="app" ng-controller="main">
<!-- sidebar -->
<a ng-click="template = 'page1.html'">Page One</a>
<a ng-click="template = 'page2.html'">Page Two</a>
<!-- content -->
<div ng-include="template"></div>
</div>
<script>
// define angular app
angular.module('app', []);
// define controller
function main ($scope) {
// instantiate template to show page one by default
$scope.template = 'page1.html';
}
// register controller
angular.module('app').controller('main', main);
</script>
答案 2 :(得分:0)
如果pageA.html中的内容可以在主HTML页面上生效,则可以在单击相关链接时使用JavaScript显示/隐藏div。
如果内容需要存在于各个HTML页面上,那么使用JS在iframe上设置src可能就好了。
答案 3 :(得分:0)
我认为使用Ajax的简单jQuery最简单。我在手机上,但只要您使用jQuery,这只是几行代码:
$获得( “URL-的-content.htm” “” 功能(数据){ $( “#内容”)HTML(数据); );很抱歉,我没有为动态检索html内容提供更多逻辑,但我希望这有帮助,因为我已经使用这种方法很多已经加载jQuery的网站,因为这样很容易以外部内容方式提取。