javascript - 获取 Fuelux 树中文件夹的 ID 或名称

标签 javascript jquery tree fuelux

我正在尝试获取 Fuelux 树中所选文件夹的 ID 或名称,但无法完成。

我的树是一个经典的文件夹/文件类型树,我希望在单击文件时能够看到文件夹的 ID。

这是我的树数据源

var treeDataSource = new DataSourceTree({
                data: [
                    { name: 'Elektronik Belgelerim', type: 'folder', 'icon-class': 'blue', additionalParameters: { id: 'F1' } },
                    { name: 'Gelen Kutusu', type: 'folder', 'icon-class': 'blue', additionalParameters: { id: 'F2' } },
                    { name: 'Giden Kutusu', type: 'folder', 'icon-class': 'blue', additionalParameters: { id: 'F3' } },
                    { name: 'Çöp Kutusu', type: 'folder','icon-class':'green', additionalParameters: { id: 'I1' } },
                    //{ name: 'Çöp Kutusu', type: 'item', 'icon-class': 'success', additionalParameters: { id: 'F4' } },

                    //{ name: 'Reports', type: 'item', additionalParameters: { id: 'I1' } },
                    //{ name: 'Finance', type: 'item', additionalParameters: { id: 'I2' } }
                ],
                delay: 400
            });

树的 js 函数在 tree-custom.js 中像这样开始

var e = function (e, i) {
        this.$element = t(e), this.options = t.extend({}, t.fn.tree.defaults, i), this.$element.on("click", ".tree-item", t.proxy(function (t) {
            this.selectItem(t.currentTarget)
        }, this)), this.$element.on("click", ".tree-folder-header", t.proxy(function (t) {
            this.selectFolder(t.currentTarget)
        }, this)), this.render()
    };

这是我在 trree-custom.js 中再次添加文件夹下的链接的地方。我知道这很原始,但这就是我用我目前的技能所能做的。我添加的部分位于引号之间。 Rest 带有 Beyondadmin 主题,看起来像普通的 Fuelux。

selectFolder: function (e) {
            //alert("testselectFolder");
            //
            //alert($('#myTree').tree({ dataSource: dataSource }));

            var i, n, r, o = t(e),
                s = o.parent(),
                a = s.find(".tree-folder-content"),
                l = a.eq(0);
            //-----------------------------------------------
            var li = $('<li>');
            var TcgbLink = $('<a href=/E-Belge/Main/Folder/Inbox/?Type=1&DocumentTypeId=3>e-TCGB</div>' +"</br>");
            var FaturaLink = $('<a href=/E-Belge/Main/Folder/Inbox/?Type=1&DocumentTypeId=4>e-Fatura</div>' + "</br>");
            var Dolasim = $('<a href=>e-Dolasim Belgesi</div>');
            li.append(FaturaLink);
            a.append(li);
            li.append(TcgbLink);
            a.append(li);
            li.append(Dolasim);
            a.append(li);
            //-----------------------------------------------
            o.find(".fa.fa-folder").length ? (i = "opened", n = ".fa.fa-folder", r = "fa fa-folder-open", l.show(), a.children().length || this.populate(o)) : (i = "closed", n = ".fa.fa-folder-open", r = "fa fa-folder", l.hide(), this.options.cacheItems || l.empty()), s.find(n).eq(0).removeClass("fa fa-folder fa-folder-open").addClass(r), this.$element.trigger(i, o.data())

        },

现在这些链接正在所有 4 个文件夹下生成。我希望能够获取文件夹的 id(或名称,最好是 Id),以便我可以将新的类型参数分配给查询字符串。

到目前为止,我尝试使用 this.data.id 获取 id,但没有成功。

最佳答案

建议不要在 selectFolder 回调中注入(inject)文件夹的子级,而是通过 dataSource 回调添加子级(如本示例代码所示: http://getfuelux.com/javascript.html#tree-usage-javascript )。

当您单击树节点时,数据源的第一个参数是“父数据”(第二个参数是您发送新的子数据数组的回调)。

这样您就可以使用 selected event用于获取您的 ID,因为它获取传递给它的 jQuery 数据。

关于javascript - 获取 Fuelux 树中文件夹的 ID 或名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36081633/

相关文章:

jquery - 在 d3.js 中平移条形图

c++ - 逐级遍历树找出层次

有效绘制树木的算法?

javascript - 将 jQuery colorbox 插件添加到动态创建的元素,额外的问题

javascript - 识别扫描仪设备输入或手动输入的问题

javascript - Jquery AJAX/动画控制流程

java - 深度优先搜索算法工作原理

javascript - 显示模态弹出窗口不起作用

javascript - 为什么 # 出现在 URL 中

javascript - 如果未单击按钮,如何禁用滚动