日期:2014-05-16  浏览次数:20335 次

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')可以将代码执行暂时中断,使有时间从后台取得数据加载到树中。

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