一. 用iframe方法实现点击左边, 右边出现相应的页面。
我做一个后台, 而且他指出别人没有用iframe, 问我行不行。 只能说行。 没有在网上查看过多的资料, 某天晚上突然想起ajax 里面有一个load方法, 这个方法可以载入其他页面的内容。 于是有了灵感, 开始也只是尝试一下:
先写出一个上菜的菜单。 千万记住链接后面的target得要,而且名字需要一样,等会会用到
在内容的区域添加上面代码,插入iframe, 这里的name对应上面链接里面的name, src="index.html", 表示默认页是index.html, 至于后面的那些属性是控制iframe样式的。 以上iframe就告一段落了。
二. 用ajax方法实现点击左边, 右边出现相应的页面。
("li").on('click', function() {
var href = $(this).find("a").attr('href');
$('#mainContents').empty();
$('#mainContents').load("../new/" + href);
//阻止跳转
$(this).parents('li').addClass('active').siblings('li').removeClass('active');
return false;
});
点击li, 找到li里面对应的链接地址,阻止url跳转,然后在内同区域载入找到的url对应的地址。 惊奇的发现,试验了也可行。 然而新问题来了。 用load方法,只能载入已经加载完毕的页面,如果我们的页面没有加载完毕呢, 或者修改了, 怎么办?? 所以还是用ajax 吧。
var menu = $("#menuID>li h2"),
srcLi = menu.next('ul').find('li');
srcLi.on('click', function(e) {
var href = $(this).find("a").attr('href');
$('#mainContents').empty();
$.ajax({
// beforeSend: function(){
// $('#mainContents').html('正在请求');
// },
// complete: function(){
// $('#mainContents').html('加载完毕');
// },
type: "GET",
url: "../new/" + href,
success: function(data) {
$('#mainContents').append(data);
}
});
//阻止跳转
$(this).parents('li').addClass('active').siblings('li').removeClass('active');
return false;
});
menu.on('click', function() {
$(this).next('ul').slideToggle(400);
$(this).stop('false').toggleClass('on');
});
以上的思路, 和开始时候的load方法一样。首先找到每一个li 里面对应的url, 然后清空 右侧的内容, 用ajax动态获取不同的页面, 就追加到右侧的内容中。 阻止跳转。
另外,附上一个相似的代码,这是点击一个树状菜单出来不同的内容。第一次用ajax调用json数据。着实小兴奋了一把。这个与上面说的内容一毛钱的关系也没有,只是为了祭奠一下我的第一次而已
$.ajax({
type: "post",
url: "../new/txt/txt1.json",
dataType: "json",
success: function(data) {
$("#blank").empty();
var employees = data.employees;
$.each(data.employees, function(k, v) {
var tpl1 =
'' + '' + v.职位 + ': ' + '' + v.姓名 + ';
' + '';
$("#blank").append(tpl1);
});
}
})
调用的json数据为
{
"employees": [
{ "姓名": "张三", "职位":"php后台", "email": "aaaa" },
{ "姓名": "李四", "职位":"人事经理", "email": "bbbb" },
{ "姓名": "王五", "职位":"Harold", "email": "cccc" },
{ "姓名": "Isaac", "职位": "Asimov", "genre": "science fiction" },
{ "姓名": "Tad", "职位": "Williams", "genre": "fantasy" },
{ "姓名": "Frank", "职位": "Peretti", "genre": "christian fiction" },
{ "姓名": "Eric", "职位": "Clapton", "instrument": "guitar" },
{ "姓名": "Sergei", "职位": "Rachmaninoff", "instrument": "piano" }
],
"test": [
{ "姓名": "赵六", "职位":"php后台", "email": "aaaa" },
{ "姓名": "齐七", "职位":"人事经理", "email": "bbbb" },
{ "姓名": "王五", "职位":"Harold", "email": "cccc" },
{ "姓名": "Isaac", "职位": "Asimov", "genre": "science fiction" },
{ "姓名": "Tad", "职位": "Williams", "genre": "fantasy" },
{ "姓名": "Frank", "职位": "Peretti", "genre": "christian fiction" },
{ "姓名": "Eric", "职位": "Clapton", "instrument": "guitar" },
{ "姓名": "Sergei", "职位": "Rachmaninoff", "instrument": "piano" }
]
}
整个演示用的示例程序包含默认页面(index.jsp),用户列表页(userList.jsp),产品列表页(productList.jsp),订单管理页(recordList.jsp)
使用了 Bootstrap 框架和 FontAwesome 的图标(没办法,bootstrap自带的图标太少了o(╯□╰)o),这俩货的使用方法请参见官网,都比较简单
先来看看index.jsp的代码吧,我基本都详细注释了:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- 在IE运行最新的渲染模式 --%>
<%-- 初始化移动浏览显示 --%>
- 后台管理系统 -
控制台 欢迎使用XXX后台管理系统
使用指南:
默认页面内容……
注意:
如果FontAwesomt的图标没有正确显示出来,那很可能是 font-awesome.css 内的字体文件地址出错
注意检查右边红框内的url是否对应左边红框内fonts-awesome文件的路径
userList.jsp页面代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
我是用户列表 (っ´Ι`)っ
productList.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
我是产品列表 ╰( ̄▽ ̄)╭
recordList.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
我是订单列表 <( ̄ˇ ̄)/
这三个只是简单的演示页,就不多费笔墨了