liタグ内にアンカータグを追加しようとしましたが、次のエラーが発生していました。 jsTreeが自動的にliタグの下にアンカータグを追加しているため、アンカー内にアンカーを配置していると仮定しています。ここでjsTreeノードのアンカータグでエラーが発生しました
angular.js:13920TypeError: Cannot read property 'childNodes' of undefined
マークアップです:
<div id="jstree_dbs_div">
<ul>
{% for type in types %}
<li data-jstree='{"checkbox_disabled":true}'>
{{ type['parent']['text'] }} <span><a href="#">edit</a></span>
</li>
{% endfor %}
</ul>
</div>
私はそのアンカータグを削除した場合、それは(すなわちエラーなし)正常に動作しません。ここで
がjsTreeの設定です:
$jsTree.jstree({
"core": {
multiple: false,
},
"conditionalselect": function (node, event) {
return false;
},
"plugins" : [ "wholerow", "checkbox", "conditionalselect" ],
"checkbox": { cascade: "", three_state: false },
}).on("ready.jstree", function() {
$jsTree.jstree('open_all');
}).on("select_node.jstree", function (e, data) {
var href = data.node.a_attr.href;
document.location.href = href;
});
JSONではなくマークアップ(例のように)でツリーを作成してレンダリングする例を教えてください。 – xil3
これは動作しませんので、スパンをリンクとして使用してください - https://fiddle.jshell.net/ermakovnikolay/abq5b274/ –
元々、ノード内のスパン内にアンカーがラップされていました。それはうまく表示するために働いたが、まだそのエラーを生成しました。投稿した回答を確認してください。ハックのようなものだが、うまくいく。 – xil3