8

私のjstree関数はここにあります。
を設定'select_limit' : 3しましたが、機能していません。実行すると、3 つ以上のノードを選択できますが、3 つ以上のノードを選択する必要はありません。

     var j1 = jQuery.noConflict();
     j1("#utree_activity").jstree({
        "plugins": ["themes", "html_data", "ui", "crrm", "checkbox"],
        "html_data": {
            "ajax": {
                "url": urlGlobal + "jstrees/activitytree/",
                "asynchronous": "false",
                "data": function (n) {
    
                    return {
                        id: n.attr ? n.attr("id") : 0,
                        default_activities: default_activities
                    };
                },
                "success": function (gb) {
    
                },
    
            }
        },
        "ui": {
            "select_limit": 3,
        },
    
        "cookies": {
            cookie_options: {
                path: "/"
            }
        },
        
        "checkbox": {
            two_state: true,
            real_checkboxes: false
        }
    });
4

2 に答える 2

8

select_limit独自のbefore.jstreeメソッドをロールする必要があるチェックボックスを処理しません。

j1.bind("before.jstree", function (e, data) {
    if (data.func === "check_node") {
        if (j1.jstree('get_checked').length >= 1) {
            e.preventDefault();
            return false;                
        }
    }
});

このコードは単なる例であり、子ノードを処理しないことに注意してください

作業フィドル: http://jsfiddle.net/cfb9J/1/

于 2013-04-10T13:42:04.600 に答える
0

別のオプションがありません。おそらく ui モジュールを追加する必要があります。これを試してください:

j1("#utree_activity").jstree({ 
"plugins" : ["html_data","ui"],

 //the rest of your code
});
于 2013-02-09T05:33:06.243 に答える