このプロジェクトではツリー メニュー機能を設計する必要があったため、Baidu で関連情報を検索したところ、zTree に関する情報がたくさんあることがわかり、非常に優れていると思いました。また、zTree には公式 API ドキュメントもあります。かなり詳しく紹介されていたので、悩んだ末にやっと理解できたので、zTreeの学習のまとめとも言えるものを書いてみました。
zTree の紹介:
1. zTree は、JQuery のコア コードを使用して、最も一般的な機能を実行できる一連の Tree プラグインを実装します
2. zTree v3.0 はコアコードを機能ごとに分割しており、不要なコードをロードする必要がありません
3. 遅延ロード技術を使用すると、数万のノードを簡単にロードでき、IE6 環境下でも基本的に即時停止を実現できます
4. IE、FireFox、Chrome、Opera、Safari およびその他のブラウザと互換性があります
5. JSON データをサポートします
6. ノード データの静的および Ajax 非同期ロードをサポートします
7. スキンの変更/カスタムアイコンをサポートします (CSS に依存)
8. 非常に柔軟なチェックボックスまたはラジオ選択機能をサポートします
9. 複数のイベント応答コールバックを提供します
10. 柔軟な編集 (追加/削除/変更/確認) 機能。ノードを自由にドラッグ アンド ドロップでき、複数のノードをドラッグ アンド ドロップできます。
11. 1 ページ内に複数の Tree インスタンスを同時に生成できます
コア関数とプロパティの紹介:
コア:zTree(setting, [zTreeNodes])
この関数は、JSON 形式のデータ オブジェクト設定と JSON 形式のデータ オブジェクト zTreeNodes を受け入れて、ツリーを作成します。
コアパラメータ: 設定
zTree のパラメータ設定はすべてここで行われます。簡単に言えば、ツリー スタイル、イベント、アクセス パスなどはすべてここで設定されます。
var setting = { showLine: true, checkable: true };
パラメーターが多すぎるため、特定のパラメーターについては zTreeAPI
を参照してください。コアパラメータ:zTreeNodes
zTree のノード データ コレクション全体は、JSON オブジェクトで構成されるデータ構造を採用しています。簡単に言うと、ツリーのすべての情報が Json 形式で保存されます。
1. zTree 公式ウェブサイト: http://www.ztree.me/v3/main.php#_zTreeInfo
zTree のソース コード、サンプル、API は、PDF でダウンロードできます。
zTree ノードのデータ取得方法は、静的 (直接定義) と動的 (バックエンド データベースの読み込み) に分けられます
詳細な構成手順:
最初のステップ - 関連ファイルを導入します
<link rel="stylesheet" href="ztree/css/zTreeStyle/zTreeStyle.css" type="text/css"> <script type="text/javascript" src="js/jQuery/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="ztree/js/jquery.ztree.core-3.5.min.js"></script> <script type="text/javascript" src="ztree/js/jquery.ztree.excheck-3.5.min.js"></script>
備考:
1) 最初のファイル (zTreeStyle.css) は、zTree のスタイル CSS ファイルです。これを導入するだけでツリー構造のスタイルを表示できます。
2)、2 番目のファイル (jquery-1.9.1.min.js) は、使用する必要があるため、jQuery ファイルです。
3)、3 番目 (jquery.ztree.core-3.5.min.js) は zTree のコア js ファイルです。これは必要です。
4)、最後のファイル(js/jquery.ztree.excheck-3.5.min.js)は拡張ファイルで、主にラジオボタンやチェックボックスの機能に使用されるため、これも使用されます。持ち込む必要があります。
ステップ 2 —— 関連する設定 (特定の詳細な設定については、公式 Web サイトの詳細な API ドキュメントを参照してください)
var zTree; var setting = { view: { dblClickExpand: false,//双击节点时,是否自动展开父节点的标识 showLine: true,//是否显示节点之间的连线 fontCss:{'color':'black','font-weight':'bold'},//字体样式函数 selectedMulti: false //设置是否允许同时选中多个节点 }, check:{ //chkboxType: { "Y": "ps", "N": "ps" }, chkStyle: "checkbox",//复选框类型 enable: true //每个节点上是否显示 CheckBox }, data: { simpleData: {//简单数据模式 enable:true, idKey: "id", pIdKey: "pId", rootPId: "" } }, callback: { beforeClick: function(treeId, treeNode) { zTree = $.fn.zTree.getZTreeObj("user_tree"); if (treeNode.isParent) { zTree.expandNode(treeNode);//如果是父节点,则展开该节点 }else{ zTree.checkNode(treeNode, !treeNode.checked, true, true);//单击勾选,再次单击取消勾选 } } } };
第 3 ステップ - ノード データをロードし、ツリー構造を表示します
1) HTML ページに ul を直接配置するだけで、データは最終的に ul 要素に自動的に読み込まれます
<body> <div class="zTreeDemoBackground left"> <ul id="user_tree" class="ztree" style="border: 1px solid #617775;overflow-y: scroll;height: 500px;"></ul> </div> </body>
2)、js にデータをロードします
1. 静的メソッド (直接定義)
var zNodes =[ { id:1, pId:0, name:"test 1", open:false}, { id:11, pId:1, name:"test 1-1", open:true}, { id:111, pId:11, name:"test 1-1-1"}, { id:112, pId:11, name:"test 1-1-2"}, { id:12, pId:1, name:"test 1-2", open:true}, ]; $(document).ready(function(){ $.fn.zTree.init($("#user_tree"), setting, zNodes); }); function onCheck(e,treeId,treeNode){ var treeObj=$.fn.zTree.getZTreeObj("user_tree"), nodes=treeObj.getCheckedNodes(true), v=""; for(var i=0;i<nodes.length;i++){ v+=nodes[i].name + ","; alert(nodes[i].id); //获取选中节点的值 } }
2. 動的メソッド (バックグラウンドデータベースからロード)
/** * 页面初始化 */ $(document).ready(function(){ onLoadZTree(); }); /** * 加载树形结构数据 */ function onLoadZTree(){ var treeNodes; $.ajax({ async:false,//是否异步 cache:false,//是否使用缓存 type:'POST',//请求方式:post dataType:'json',//数据传输格式:json url:$('#ctx').val()+"SendNoticeMsgServlet?action=loadUserTree",//请求的action路径 error:function(){ //请求失败处理函数 alert('亲,请求失败!'); }, success:function(data){ // console.log(data); //请求成功后处理函数 treeNodes = data;//把后台封装好的简单Json格式赋给treeNodes } }); var t = $("#user_tree"); t = $.fn.zTree.init(t, setting, treeNodes); }
Java バックグラウンド読み込みデータ コード:
1. ツリーの VO クラスを定義します。他の操作を使用する必要があるため、これを定義する必要はありません。
/** * zTree树形结构对象VO类 * * @author Administrator * */ public class TreeVO { private String id;//节点id private String pId;//父节点pId I必须大写 private String name;//节点名称 private String open = "false";//是否展开树节点,默认不展开 public String getId() { return id; } public void setId(String id) { this.id = id; } public String getpId() { return pId; } public void setpId(String pId) { this.pId = pId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getOpen() { return open; } public void setOpen(String open) { this.open = open; } }
2. データベースにクエリを実行します。SQL 構造フィールドも id、pId、name、open (オプション) の形式にする必要があります (注: pId の中央の I は大文字にする必要があります)。結果を TreeVO クラスに格納します。
/** * 加载树形结构数据 * @param request * @param response * @throws IOException */ public void loadUserTree(HttpServletRequest request, HttpServletResponse response) throws IOException{ WeiXinUserService weixinUserService = new WeiXinUserServiceImpl(); List<TreeVO> user_tree_list = weixinUserService.getUserTreeList(); String treeNodesJson = JSONArray.fromObject(user_tree_list).toString();//将list列表转换成json格式 返回 PrintWriter out = response.getWriter(); //利用Json插件将Array转换成Json格式 out.print(treeNodesJson); //释放资源 out.close(); }
すべての操作はここで完了します。残念ながら、文章はうまくなく、組織的な言語も当然良くありません。ご容赦ください。一緒に学び、一緒に成長しましょう!

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ホットトピック



