ホームページ > 記事 > ウェブフロントエンド > jquery ztree非同期検索(リーフ検索) practice_jquery
1. 初期の非同期読み込みツリー
初期化ではデフォルトでルート ノードが与えられ、次に非同期読み込みメソッドを組み合わせて、最初のレイヤーのデフォルトの読み込みを手動でトリガーします (図に示すように)。
コードは次のとおりです:
var treeSetting = { async: { enable: true, <a href="http://my.oschina.net/wealpan/admin/"xxx/demo.do?method=listByTree" rel="nofollow">url:"xxx/demo.do?method=listByTree</a>", dataType:"json", autoParam:["id=pid"] }, view: { dblClickExpand: true, selectedMulti: false, expandSpeed: ($.browser.msie && parseInt($.browser.version)<=6)?"":"fast" }, data: { simpleData: { enable:true, idKey: "id", pIdKey: "pid", rootPId: "root" } }, callback: { onNodeCreated: zTreeOnNodeCreated } }; //默认根结点 var rootNode = {"id":0, "pid":"root", "name":"商品分类", "open":true, "isParent":true}; $(document).ready(function(){ var zTreeObj = $.fn.zTree.init($("#tree"), treeSetting, rootNode); var node = zTreeObj.getNodeByParam("id", 0, null); zTreeObj.reAsyncChildNodes(node, "refresh"); });
2. リーフノードの非同期検索
JQuery ZTREE を使用する場合、図に示すように、リーフ ノードの非同期あいまい検索を使用する必要がある場合があります。
ZTREE 独自の展開メソッド zTreeObj.expandNode のみを使用する場合、変更ポイントが展開されるだけであり、非同期ロードをトリガーすることはできません。このとき、解決策は次のとおりです。 🎜>
otherParam 配列に値を設定して、検索パラメータをバックグラウンドに移動します (パラメータがない場合、otherParam を空の配列に設定する必要があります。そうでない場合は、コールバック関数 onNodeCreated で常に前のパラメータがバックグラウンドに移動します)。ノードの作成後、手動で非同期ロードを実行します。
function searchM() { var param = $.trim($("input[name='param']").val()); var treeObj = $.fn.zTree.getZTreeObj("tree"); var node = treeObj.getNodeByParam("id", 0, null); if(param != ""){ param = encodeURI(encodeURI(param)); treeObj.setting.async.otherParam=["param", param]; }else { //搜索参数为空时必须将参数数组设为空 treeObj.setting.async.otherParam=[]; } treeObj.reAsyncChildNodes(node, "refresh"); } function zTreeOnNodeCreated(event, treeId, treeNode) { var param <span></span><span></span>= $.tr<span></span>im($("input[name='param']").val()); var treeObj = $.fn.zTree.getZTreeObj("tree"); //只有搜索参数不为空且该节点为父节点时才进行异步加载 if(param != "" && treeNode.isParent){ treeObj.reAsyncChildNodes(treeNode, "refresh"); } };