我的项目使用easyui作为前台的展示框架
现在页面中是一个layout布局(分上,左,中)
在左边是一些菜单,点击后,在中间部分增加一个tab显示内容
而增加的tab里面是显示一些列表数据,列表上面是查询条件,为了能使查询条件能够伸缩,所以在新增的tab里面又使用了layout(分上和下,上面是查询条件框,下面是列表数据)。
现在问题来了,当关闭一个tab页的时候没有问题,但是我在tab页的叉叉按钮旁边(在tab页的title旁边)连续点击鼠标左键(注意,我的新增的tabs的cache=true),这个时候是没有任何反映的(本来就没有任何反映),但是当我这个再去点tab的叉叉关闭tab的时候,就会报js错误了($.data("...").data为空)。
我试过了,只要不嵌套layout就不会有这个问题。
求大侠们帮忙看看????
这个第一个页面代码
<body class="easyui-layout">
<div region="north" split="true" title="top" style="height: 100px;border-style: none;">top</div>
<div region="west" split="true" title="left" style="width: 200px;border-style: none;">
<input type="button" value="百度" id="baidu" />
<br />
<input type="button" value="google" id="google" />
</div>
<div region="center" style="overflow: hidden;">
<div id="tabs">
<div title="首页">首页</div>
</div>
</div>
<script>
$(function() {
$("#tabs").tabs({
fit : true
});
$("#baidu").click(function() {
var str = "百度";
if ($("#tabs").tabs("exists", str)) {
$("#tabs").tabs("select", str);
} else {
$("#tabs").tabs("add", {
title : str,
content : "百度",
cache : true,
closable : true,
selected : true
});
}
});
$("#google").click(function() {
var str = "google";
if ($("#tabs").tabs("exists", str)) {
$("#tabs").tabs("select", str);
} else {
$("#tabs").tabs("add", {
title : str,
href : "/baseWeb/index0.jsp",
cache : true,
closable : true,
selected : true
});
}
});
});
</script>
</body>下面是新增的tab代码,里面嵌套了layout
<div class="easyui-layout" fit="true">
<div region="north" split="true" title="top" style="height: 100px;border-style: none;">top</div>
<div region="center" style="overflow: hidden;">
<table id="terry"></table>
</div>
</div>
<script>
$(function() {
$("#terry").datagrid({
fitColumns : true,
nowrap : true,
striped : true,
fit : true,
columns : [[{
title : "用户名称",
field : "userName",
width : 100
}]],
frozenColumns : [[{
title : "用户ID",
field : "userId",
checkbox : true,
width : 100
}]],
fitColumns : true,
idField : "userId",
url : "/baseWeb/jsp/login.do?method=g",
pagination : true,
pageSize : 20,
rownumbers : true
});
});
</script>连续点击tab叉叉旁边的位置,就是title的位置,后再去点tab的叉叉就报js错误了

解决方案 »

  1.   

    当新增tabs里面用iframe嵌套的时候,就没有问题。
    但是用iframe嵌套后,在tab里面打开dialog(modal=true)的时候,dialog只覆盖自己的iframe窗体。
    有没有大侠知道啊,或者解决上面的报错的问题,或者解决后面的dialog不能覆盖全部IE窗口的问题。
      

  2.   

    知道了,还是用iframe嵌套在tabs里面
    然后在子页面里面打开这样dialog
    window.parent.$("#div").dialog();
    这样dialog就覆盖整个页面了。
    结贴