3

jquery.tree.checkbox.jsという名前のjsTree用のプラグインがあることを知っています。これにより、ツリーノードがマルチチェック可能になります。

ツリーノードをraidoチェックするプラグインがあるかどうか疑問に思いましたか?または、jquery.tree.checkbox.jsを変更してそれを実現するにはどうすればよいですか?

4

5 に答える 5

6

これは、属性を追加することで簡単に実行できます

    rules:{
            multiple : false
          } 

ツリーの構成内。これにより、複数のエントリを選択できなくなります。

于 2010-06-04T13:44:33.483 に答える
5

@Asafの回答は、2016年のバージョン3.3.1では機能しなくなったようです。次のように設定する必要がありmultipleますcore

$jstree.jstree({
    core: {
        multiple: false,
        ...
    }
});
于 2016-05-18T22:52:36.797 に答える
5

設定multiple:falseしてもカスケードは許可されるため、これもオフにする必要があります。

バージョン3.3.3

$(".tree").jstree({
    plugins: ["checkbox"],
    core: {
        data: ...,
        multiple: false
    },
    checkbox: {
        three_state: false,
        cascade: "none"
    }
});
于 2017-01-27T18:43:06.180 に答える
2

ラジオボタンオプションはまだリリースされていないため、chceckboxオプションをシングルセレクトとして変更する必要があります。

bind('check_node.jstree', function(e, data) {
    var currentNode = data.rslt.obj.attr("id");
    $("#tree").jstree("get_checked",null,true).each 
        (function () { 
            if(currentNode != this.id){
                jQuery.jstree._reference($("#tree")).uncheck_node('#'+this.id);
            }
        }); 
});

これを参照してくださいhttp://jsfiddle.net/bwTrP/1/

于 2013-04-19T06:39:00.963 に答える
1

チェックボックスプラグインとともにjsTreeバージョン3.2.1を使用すると、次のように「変更された」イベントを処理するラジオボタンの動作をエミュレートできます。

//jstree configuration:
'checkbox': {
    three_state: false, //required for the cascade none to work
    cascade: 'none' //no auto all_children<->parent selection
},
//...

var resetting = false;
$('#tree').on('changed.jstree', function (e, data) {
    if (resetting) //ignoring the changed event
    {
        resetting = false;
        return;
    }
    if ($("#multiselect").is(':checked') == false && data.selected.length > 1) {
        resetting = true; //ignore next changed event
        data.instance.uncheck_all(); //will invoke the changed event once
        data.instance.check_node(data.node/*currently selected node*/);
    }
});

JSFiddle:チェックボックスプラグインを使用したJSTreeラジオボタンの動作例

于 2015-09-30T09:05:31.817 に答える