2

というアドオン製品を使用して plone でツリーを生成していますcollective.virtualtreecategories。しかし、奇妙な JavaScript エラーが発生し続け、ツリーを表示できません。

ブラウザのエラー コンソールに、次のメッセージが表示されます。

$tree.tree is not a function

エラーを生成するコードの一部を次に示します。

$tree.tree({
    data: {
        type: "json",
        url: "@@vtc-categories-tree.json",
        async: false
    },
    lang: {
        new_node: "New category"
    },
    rules: {
        deletable: ["folder"],
        renameable: ["folder"],
        draggable: "none",
        droppable: "none",
    },
    callback: {
        beforechange: function(node, tree_obj) {
            return before_change_node()
        },
        onselect: function(node, tree_obj) {
            node_selected(node)
        },
        oncreate: function(node) {
            jq(node).attr('rel', 'folder')
        },
        onrename: function(node, lang, tree_obj, rb) {
            old_id = node.id // may be undefined (new node)
            new_name = jq(node).children("a:visible").text();
            // shared code. Server determines if creating/renaming by the old_name value
            jq.ajax({
                type: 'POST',
                url: "vtc-category-added-renamed",
                data: {
                    'category_path': selected_category(node),
                    'old_id': old_id,
                    'new_name': new_name
                },
                success: function(data) {
                    jq.jGrowl(data.msg, {
                        life: 1500
                    });
                    // set/change node id
                    if (data.result) {
                        node.id = data.new_id
                    }
                },
                dataType: 'json',
                traditional: true
            })
        },
        beforedelete: function(node, tree_obj) {
            jq.ajax({
                type: 'POST',
                url: "vtc-category-removed",
                data: {
                    'category_path': selected_category(node)
                },
                success: function(data) {
                    jq.jGrowl(data.msg, {
                        life: 3000
                    });
                },
                dataType: 'json',
                traditional: true
            });
            return true;
        }
    }
});​

完全なコード リストは、ここで見つけることができます。

誰かがこれを修正するのを手伝ってくれますか?

更新: おそらくそれを追加する必要があります。これは以前は別の設定で機能していました。今、プロジェクトを再作成したところ、このエラーが発生しました。

4

3 に答える 3

0

あなたのコードからわかる限り、$treeそれは関数ではなく、89行目の要素です。 var $tree = jq('ul#VTCTree');

したがって.tree()、JQueryウィジェットであり、期待どおりに機能していないと思いますか?

コメントと更新のいくつかを見たところです。ツリープラグイン/ウィジェットのパス/ファイルインクルードを確認しましたか?

于 2012-10-03T13:15:47.750 に答える
0

ブラウザのエラー コンソールに、次のメッセージが表示されます。

ブラウザが Internet Explorer の場合、ここにある余分なコンマ

droppable: "none",

広く知られている問題です。

Firefox では問題ありませんが、次の配列の 3 つの要素のように、予期しない結果が発生します。ただし、長さ = 4

myArr = [1,2,3,,]

また、これを確認してください https://stackoverflow.com/a/5139232/982924

于 2012-10-03T13:36:32.690 に答える
0

jquery をロードし、jquery.filetree.min プラグインをロードしたにもかかわらず、同じ問題が発生しました。必要なjquery UI jsがありませんでした。

于 2016-01-02T16:29:38.760 に答える