关于点击ztree的节点将页面生成到easyui的新增选项卡(easyui-tabs)时,总是在浏览器中生成一个新的页面的问题
最近的项目中用到了easyui,还有ztree菜单。在这里将我遇到的一些问题写出来算是做个笔记吧。
这是我头一次在博客园里分享代码,我的处女作,写的不好的地方还望各位见谅!
由于很久没有写过前台的东西手有点生,刚开始还以为很简单(不过确实很简单)然后咚咚咚的一顿狂敲,再然后一运行,。。。哎呀! 点击ztree的节点除了选项卡有页面外,浏览器还给我生成了一个页面。 仔细一想 :也是,点击节点时 ztree会根据treeNode的url属性去访问后台,然后肯定会生成一个新的jsp页面,虽然你把url的给了easyui-tabs 但是然并卵,跟easyui-tabs又没关系。于是我就想 如果点击节点时不让他去访问后台不就完了吗?然后百度了一下,结合ztree的API 发现
;
废话不多说,上代码。。。
<script type="text/javascript" charset="utf-8">
$(function(){
/* 用于展现 zTree 的 DOM 容器 */
var obj = $("#ztree");
/*配置节点信息 */
var zSetting = {
data:{
simpleData:{
enable:true,
idKey:"id",
pIdKey:"pId"
},
key:{
url:'_url'
}
},
/* 点击节点事件 */
callback: {
onClick: zTreeOnClick
}
};
/*获取节点数据 */
var uid = "${user.uid}";
$.ajax({
type:"post",
url:"<%=path%>/main/getPowerList.action",
async:false,
data:{uid:uid},
dataType:"json",
success:function(mes){
zNodes = mes;
}
});
/* zTree 初始化方法 */
$.fn.zTree.init(obj, zSetting, zNodes);
/* 展开全部节点 */
var treeObj = $.fn.zTree.getZTreeObj("ztree");
treeObj.expandAll(true);
});
/* 点击节点时触发的函数 */
function zTreeOnClick(event, treeId, treeNode) {
//如果点击的是父节点 则折叠该节点
var zTree = $.fn.zTree.getZTreeObj("ztree");
if (treeNode.isParent) {
zTree.expandNode(treeNode);
return false;
} else {
var url = "<%=path%>/"+treeNode.url;
var name = treeNode.name;
easyui_tab(name,url);
return true;
}
};
//生成新的选项卡
function easyui_tab(text,url) {
//若选项卡已存在,选择该选项卡
if ($("#tabs").tabs('exists', text)) {
$("#tabs").tabs('select', text);
} else {
var content = "<iframe frameborder='0' scrolling='auto' style='width:100%;height:100%' src="
+ url + "></iframe>";
//生成新的选项卡,
$("#tabs").tabs('add', {
title : text,
closable : true,
content : content,
});
}
}
</script>
<body class="easyui-layout">
<div data-options="region:'north',split:false,collapsible:false" style="height:100px;"></div>
<div data-options="region:'south',split:false" style="height:100px;"></div>
<!-- ztree盒子 -->
<div data-options="region:'west',title:'操作',collapsible:false,split:false" style="width:180px;">
<div id="ztree" class="zTree" >
</div>
</div>
<div data-options="region:'center'" style="padding:0px;background:#eee;">
<!-- 选型卡 -->
<div id="tabs" class="easyui-tabs" data-options="border:false" style="height:410px;">
<div title="首页" style="padding:20px;display:none;">
<center>
<h1>欢迎使用</h1>
</center>
</div>
</div>
</div>
</body>
最后上一张简单的Demo效果图

关于点击ztree的节点将页面生成到easyui的新增选项卡(easyui-tabs)时,总是在浏览器中生成一个新的页面的问题的更多相关文章
- 在Discuz X 中增加一个单独的页面
如果在DZ中增加一个新的页面,并且取得DZ中相关的用户等乱七八糟的属性,在旧的版本中只要引用一个 -. comm.php 文件就可以,但是在 X 版本以后好像就没.还好,X版本中还是有办法解决的,使用 ...
- iOS中的项目新特性页面的处理
一般项目中都会出现新特性页面,比如第一次使用应用的时候,或者在应用设置里查看新特性的时候会出现. 这里,选择新建一个专门处理项目新特性的控制器,来完成功能. 首先是 NewFeaturesViewCo ...
- Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果
前言: 使用Layui-admin做后台管理框架有很长的一段时间了,但是一直没有对框架内iframe菜单栏切换跳转做深入的了解.今天有一个这样的需求就是通过获取超链接中传递过来的跳转地址和对应的tab ...
- 浏览器中输入URL到返回页面的全过程
第一步,解析域名,找到主机IP (1)浏览器会缓存DNS一段时间,一般2-30分钟不等.如果有缓存,直接返回IP,否则下一步. (2)缓存中无法找到IP,浏览器会进行一个系统调用,查询hosts文件. ...
- 网易笔试题:浏览器中输入一个url后回车到返回页面信息的过程
You enter a URL into the browser输入一个url地址 The browser looks up the IP address for the domain name浏览器 ...
- Intent启动一个新的页面
一,Intent(目的) 的分类 显式 Intent 构造函数重载之一: Intent intent = new Intent(FirstActivity.this,SecondActivity.cl ...
- 使用JavaScript根据从后台获取来的数据打开一个新的页面
HTML代码是: 入库类型是: <select id="selectIn" onchange="goUrl(this.options[this.selectedIn ...
- jsp重新打开一个新的页面
有以下一种实现方式: 1.target="_blank” <a href="document.html" target="_blank"> ...
- 在 IE 浏览器中,使用 bootstrap 使得页面滚动条浮动显示,自动隐藏,自动消失
貌似是从 IE10 开始?为了触屏操作优化浏览器的内容显示,IE 浏览器提供了一种可以浮动显示,自动隐藏的滚动条样式,但是这个样式会在某些情况下造成一些困扰,比如下图... 其实默认情况下,桌面版的 ...
随机推荐
- asp.net mvc中包含webapi时,token失效产生302的解决方案
public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOpt ...
- Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***.
Mongodb:修改文档结构后出现错误:Element '***' does not match any field or property of class ***. Mongodb是一种面向文档的 ...
- Asp.net 字符(二)
using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...
- ubuntu修改hostname
在Ubuntu系统中,快速查看主机名有多种方法:其一,打开一个GNOME终端窗口,在命令提示符中可以看到主机名,主机名通常位于“@”符号后:其二,在终端窗口中输入命令:hostname或uname – ...
- windbg学习进阶之——windbg字段名及其意义
要使用windbg分析dump必须加载正确的符号,可以通过设置Symbols File Path为"D:/Symbols;SRV*D:/Symbols*http://msdl.microso ...
- Android总结篇系列:Android 权限
权限是一种安全机制.Android权限主要用于限制应用程序内部某些具有限制性特性的功能使用以及应用程序之间的组件访问.在Android开发中,基本上都会遇到联网的需求,我们知道都需要加上联网所需要的权 ...
- ASP.NET WebAPI 10 Action的选择(二)
在本系列的第二篇简要的讲述了Action的选择条件本篇深入讲述一下Action选择的过程在上一篇中我们已经讲到了Controller的激活过程中已经说到了设置Controller的Controller ...
- JavaScripts 基础详细笔记整理
一.JS简介 JavaScript 是 Web 的编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理 ...
- [Xamarin.Android] Support Library Tips
[Xamarin.Android] Support Library Tips Support Library支持内容 Xamarin Support Library每个版本支持.那些组件,可以参考这份 ...
- JS创建对象、继承原型、ES6中class继承
面向对象编程:java中对象的两个基本概念:1.类:类是对象的模板,比如说Leader 这个是泛称领导,并不特指谁.2:实例:实例是根据类创建的对象,根据类Leader可以创建出很多实例:liyi,y ...