Jstree:在单击父节点时,只有所有子元素应该被选中,父节点不应该被选中

jstree: on click of parent node only all child elements should get selected and parent should not be selected

本文关键字:父节点 单击 不应该 元素 Jstree      更新时间:2023-09-26

jstree:单击父节点时,只有所有子元素被选中,父节点被选中。

$('#DivIndustryCategoryTree').on('changed.jstree Event', function(e, data) {
    var i, j, r = [];
    var relatedIndustryID = [];
    categoryBEArray.RelatedIndustries = [];
    for (i = 0, j = data.selected.length; i < j; i++) {
        var indSelectedObj = {};
        indSelectedObj.ProductID = ProductID;
        indSelectedObj.ProductPageID = ProductPageID;
        indSelectedObj.Language = Language;
        r.push(data.instance.get_node(data.selected[i]).text);
        indSelectedObj.IndustryID = parseInt(data.instance.get_node(data.selected[i]).id);
        relatedIndustryID.push(parseInt(data.instance.get_node(data.selected[i]).id));
        categoryBEArray.RelatedIndustries.push(indSelectedObj);
    }
    selectedData = r;
    selectedDataID = relatedIndustryID;
    categoryBEArray.RelatedServices.push(null);
    categoryBEArray.ID = ProductID;
});

我认为通过配置是不可能的。但是你可以做的是,在迭代所有选定节点时,在循环开始时检查父节点(top_selected),只有当它为false时才运行循环体。

代码:

 $('#DivIndustryCategoryTree').on('changed.jstree Event', function(e, data) {
        var i, j, r = [];
        var relatedIndustryID = [];
        categoryBEArray.RelatedIndustries = [];
        // add below line
        var parentNode = $('#DivIndustryCategoryTree').jstree().get_top_selected(true)[0].text;
        //edit below line
        for (i = 0, j = data.selected.length; i < j && data.selected[i]).text!= parentNode; i++) {
            var indSelectedObj = {};
            indSelectedObj.ProductID = ProductID;
            indSelectedObj.ProductPageID = ProductPageID;
            indSelectedObj.Language = Language;
            r.push(data.instance.get_node(data.selected[i]).text);
            indSelectedObj.IndustryID = parseInt(data.instance.get_node(data.selected[i]).id);
            relatedIndustryID.push(parseInt(data.instance.get_node(data.selected[i]).id));
            categoryBEArray.RelatedIndustries.push(indSelectedObj);
        }
        selectedData = r;
        selectedDataID = relatedIndustryID;
        categoryBEArray.RelatedServices.push(null);
        categoryBEArray.ID = ProductID;
    });