我向elFinder添加了一个新的工具栏按钮和一个新的上下文菜单项。

效果很好,但是仅当选择一个普通文件时,才应启用此项目。因此,如果未选择任何文件,则应变暗;如果选择了多个文件或选择了目录,则应变暗。

我了解到,比在elFinder.prototype.commands.mycmd中将this.getstate返回值设置为:


0如果应启用工具栏/上下文菜单项,并且
-1是否应禁用


所以,现在有这个:

埃尔

Finder.prototype.commands.mycmd= function() {

    var self  = this,
        fm    = self.fm;

    self.disableOnSearch = true;

    self.title = 'mycmd';

    self.getstate = function() {
            // need help here to add the "directory is selected check"
        return fm.selected().length == 1 ? 0 : -1;
    }

    self.exec = function() {
        alert("hello");
    }
}


不幸的是,我只知道Perl,所以我很难遍历所有elFinder的javascript代码来弄清楚如何掌握条件。

足够了解任何人elFinder可以帮助我缓解这种状况吗?

最佳答案

只需在elFinder的download.js中找到解决方案。

这有效-至少目前是这样。

elFinder.prototype.commands.mycmd= function() {

    var self  = this,
        fm    = self.fm;

    self.disableOnSearch = true;
    filter = function(hashes) {
        return $.map(self.files(hashes), function(f) { return f.mime == 'directory' ? null : f });
    };

    self.title = 'mycmd';

    self.getstate = function() {
        var sel = self.fm.selected(),
        cnt = sel.length;
        return  !self._disabled && cnt == 1 && cnt == filter(sel).length ? 0 : -1;
    }

    self.exec = function() {
        alert("hello");
    }
}

关于javascript - 如何在elFinder中检测多个选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20251454/

10-10 17:57