首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jqueryeasyUI加载异步树报错$.data(.).options为空或不是对象,该如何处理

2013-11-12 
jqueryeasyUI加载异步树报错$.data(...).options为空或不是对象jsp页面A中弹出窗体窗体中嵌套页面B,弹出方

jqueryeasyUI加载异步树报错$.data(...).options为空或不是对象
jsp页面A中弹出窗体窗体中嵌套页面B,弹出方式如下:


$('#depAndMod_Win').dialog({   
    title: '选中发送部门模块',   
    width: 300,   
    height: 350,   
    closed: false,   
    cache: false,   
    href: 'B.jsp',   
    modal: true
});


B中初始化页面的时候 加载异步树 代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/common/tagLibs.jsp" %> 
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="${context}/css/css.css" rel="stylesheet" type="text/css" />
<link href="${context}/css/style.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" src="${context}/js/dateWin/WdatePicker.js"></script>
<script type="text/javascript" src="${context}/js/jquery-1.7.2.min.js"></script>
<title>贵州机场集团值班日志平台</title>
</head>
<body>
<script type="text/javascript">
$(function(){
//alert('laise'); 取消这一行注释 问题解决  非常郁闷 
try{
$('#tt').tree({ 
    url:'department/DepartmentAction!queryUnitTreeNode.sr',
    checkbox:true,
    loadFilter: function(data){
    if(data.rows){
    return data.rows;
    }else{
    return data;
    }
    }
});
}catch(e){}
});
</script>
<ul id="tt"></ul>
<form method="post" id="sendLogsForm" name="sendLogsForm">
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center">
  <tr><td><ul id="tt"></ul></td></tr>
  <tr>
    <td align="center"><input type="button" value="确定" onclick="sendLogs()"/></td>
  </tr>
</table>
</form>
</body>
</html>




说下我发现可能的原因:我的javascript是放在body中的(可能是由于用jquery dialog弹出窗体的原因,将javascript放到head中尽然神奇的不能执行),故而执行了两次加载树的代码,第一次是加载javascript代码,第二次是执行javascript,加载的时候过快导致还没有从后台取得数据故而报错,用alert('fdsaf')可以将代码执行暂时中断,使有时间从后台取得数据加载到树中。

不知道我这样叙述大家听得懂不?不明白的话 我在解释,还望看到的朋友帮忙说下解决方案。分我有很多,只要能解决问题,都有分。谢谢!!!
[解决办法]
这个版本的dialog有问题吧。。

配置了href,都会加载2次href指定的url,导致b中的tree也请求了2次配置的url,导致第一次请求的DOM被第二次请求b清空了,此时引用到dom就出错了

加载b页面加载了2次,1.3.4的只加载一次b页面

热点排行