先日、古いオープンソースプロジェクトの1つを再ソーイングすることに戻りました。
思考の過程で、現在の形式の
ツリーを
持つ以前の
コンポーネントはもはや私に合わないと判断しました。
明確でシンプルなAPIを備えた、もっとイベントドリブンなものが欲しかった。
今、私はすでに公開の準備ができていると決めました。
取って、使ってください 。
または
GH-pagesのフレームワークの例を見てください。
catの下で、短いAPIドキュメントの短い翻訳。
UPD :コメントで、
ドラッグアンドドロップコード。
jQueryプラグインとして実行されます。
構成の例、つまり ツリーを「作成」するときに送信されるもの:$('#tree_content').customTree({ root : 'top', init : { callback : function (controller, tree) { info('Init callback.'); } },
このコードは、Parsing \ Renderingに送られるノードのパラメーターについて厳密な合意を使用しているため
、単一ノード(リーフ)の例を示します。 {
説明{- root-ノードのルートパスの名前
- init-起動オプション
ハンドラー(リーフ、コントローラー、ツリー) -定義済みのイベントハンドラー。
全員が現在のノード、コントローラー、およびツリーオブジェクトを受け入れます。
ただし、
beforeblurは最初のパラメーターとしてコールバック
も受け入れます。
たとえば、現在のノードをぼかすことができるかどうかを確認する必要がある場合。
はいの場合、このコールバックを呼び出す必要があります。
それ以外の場合は、それを呼び出さないでください。そうしないと、ブラーが発生しません。
別のノードにフォーカスを合わせる必要があるためにぼかしを行う必要がある場合、このコールバックを呼び出さないと、現在のぼかしも目的のノードのフォーカスも作成されません。
当然、これらのbeforeblurのコールバック操作は、設定にhandler.beforeblurを渡す場合にのみ可能です。
ローダー(パス、コールバック) -コントローラーがリーフをロードするためにアクセスするもの。
['tree.root'、 'leaf.name']をパスとして使用します。
JSオブジェクトを返す必要があります!
リスナーはjQuery .on標準ではありません(ノードのテキスト要素のコールバック。
つまり、たとえば、コンテキストメニューまたはカスタムクリックが必要な場合は、リスナーを使用する必要があります。
テーマ -レンダリング時のクラスのCSS PREFIX_
cls-レンダリング時のCSSクラスのセット:
cls : {
html-レンダリング用のHTMLタグ:
html : {
control- + \-に使用される行:
control : { close : '+', open : '–' },
storeLoaded:true || false- 「折りたたみ」ノードを保存するか、毎回再起動します
focusParentOnClose:true || false-子孫にフォーカスがある場合、親を選択します
focusByDblClick:true || false-ダブルクリック
blurFromContainerClick:true || false-ルートがクリックされたときにぼかし
blurFromContainerDblClick:true || false-ルートをダブルクリックしたときにぼかし
labelsBreak: -ノードのテキストキャプションは長くなる可能性があり、必要に応じて「トリミング」のオプション:
labelsBreak : {
コントローラーAPI
- getPath(葉) -葉オブジェクトの配列URLを返します:['top'、 'leaf_name'、 'child_name' ...]
- 更新(リーフ、コールバック、およびオープン) -渡された「リーフ」をリロードし、
「コールバック」は完了時に使用され、
折りたたまれたノードを展開する必要がある場合は「andOpen」を渡します
- blur(leaf) -blurノードを作成します
- フォーカス(リーフ) -ノードにフォーカスを設定します
- x-現在の構成
- x.current-現在選択されているノード
- init-config.init.auto == falseの場合、initツリーを呼び出す関数があります
これが誰かに役立つことを願っています。