jsTree可以使用radio检查吗

发布于 2024-08-31 06:30:05 字数 143 浏览 8 评论 0原文

我知道 jsTree 有一个名为 jquery.tree.checkbox.js 的插件。 这使得树节点可以进行多重检查。

我只是想知道是否有一个插件可以raido检查树节点? 或者我如何修改 jquery.tree.checkbox.js 来实现这一点?

i know there is a plugin for jsTree named jquery.tree.checkbox.js.
that make the tree node multi checkable.

i just wondered if there is a plugin to raido check the tree node?
or how can i modify jquery.tree.checkbox.js to achieve that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

虐人心 2024-09-07 06:30:05

添加属性来完成

    rules:{
            multiple : false
          } 

这可以简单地通过在树的配置中 。
这将导致无法选择多个条目。

This can simply be done by adding the attribute

    rules:{
            multiple : false
          } 

Inside the configuration of the tree.
This will make it impossible to choose multiple entries.

漫漫岁月 2024-09-07 06:30:05

@Asaf 的答案似乎不再适用于 2016 年的 3.3.1 版本。您现在需要在 core 上设置 multiple

$jstree.jstree({
    core: {
        multiple: false,
        ...
    }
});

@Asaf's answer seems to no longer work on version 3.3.1 in 2016. You now need to set multiple on core:

$jstree.jstree({
    core: {
        multiple: false,
        ...
    }
});
深居我梦 2024-09-07 06:30:05

设置 multiple:false 仍然允许级联,因此您也需要将其关闭。

版本3.3.3

$(".tree").jstree({
    plugins: ["checkbox"],
    core: {
        data: ...,
        multiple: false
    },
    checkbox: {
        three_state: false,
        cascade: "none"
    }
});

Setting multiple:false will still allow cascading so you need to turn that off too.

version 3.3.3

$(".tree").jstree({
    plugins: ["checkbox"],
    core: {
        data: ...,
        multiple: false
    },
    checkbox: {
        three_state: false,
        cascade: "none"
    }
});
染柒℉ 2024-09-07 06:30:05

单选按钮选项还没有释放,所以你必须将复选框选项更改为单选。

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/

The radio button option is still not released, so you have to change the chceckbox option as single select.

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);
            }
        }); 
});

refer this http://jsfiddle.net/bwTrP/1/

十六岁半 2024-09-07 06:30:05

使用 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 单选按钮行为示例

Using jsTree version 3.2.1 with the checkbox plugin it is possible to emulate radiobutton behaviour handling the 'changed' event as follows:

//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 radiobutton behaviour example using checkbox plugin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文