jquery easyui jsロード2回実行
5760 ワード
今日出会ったばかりの問題は、わけのわからない木が載せられたときに2回実行されました!
最終的に原因を特定:
EasyUIコンポーネントにはclass="easyui-tree"が追加され、スクリプトによって属性が登録される.これにより、2回のレンダリングロードが作成されます.
EasyUIがhtmlコードを解析するときにclass宣言のeasyui-treeコンポーネントを解析してurlを1回要求し、jsで初期化されたコードを呼び出してデータを初期化し、重複ロードを招く
修正後のコード:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2 <script>
3 $(function(){
4 $('#left_menu_tree').tree({
5 url:'jslib/tree_data2.json',
6 animate:true,// / .
7 lines:true,// .
8 onClick:function(node){
9 //node.state , 'open' 'closed' typeof undefined
10 if( typeof node.state != 'undefined'){
11 $(this).tree('toggle', node.target);// expanded/collapsed ,target DOM .
12 }else{
13 CreateTab(node.text,node.attributes.url,node.iconCls);// : TAB
14 }
15 }
16 });
17 });
18 </script>
19 <ul id="left_menu_tree" class="easyui-tree" data-options="animate:true,fit:true"></ul>
最終的に原因を特定:
EasyUIコンポーネントにはclass="easyui-tree"が追加され、スクリプトによって属性が登録される.これにより、2回のレンダリングロードが作成されます.
EasyUIがhtmlコードを解析するときにclass宣言のeasyui-treeコンポーネントを解析してurlを1回要求し、jsで初期化されたコードを呼び出してデータを初期化し、重複ロードを招く
修正後のコード:
1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2 <script>
3 $(function(){
4 $('#left_menu_tree').tree({
5 url:'jslib/tree_data2.json',
6 animate:true,// / .
7 lines:true,// .
8 onClick:function(node){
9 //node.state , 'open' 'closed' typeof undefined
10 if( typeof node.state != 'undefined'){
11 $(this).tree('toggle', node.target);// expanded/collapsed ,target DOM .
12 }else{
13 CreateTab(node.text,node.attributes.url,node.iconCls);// : TAB
14 }
15 }
16 });
17 });
18 </script>
19 <ul id="left_menu_tree" data-options="animate:true,fit:true"></ul>