我希望我的elfinder在选择文件后自动关闭。
<script>
function upload_slider(){
var f = $('#elfinder').elfinder({
url : 'plugins/elfinder/php/connector.php',
height: 490,
docked: false,
dialog: { width: 400, modal: true },
closeOnEditorCallback: true,
getFileCallback: function(url) {
$('#new_file').val(url);
// CLOSE ELFINDER HERE
}
}).elfinder('instance');
}
</script>
<input type="text" id="new_file" />
<input type="button" onclick="upload_slider();" value="Select File" />
<div id="elfinder"></div>
如何做到这一点?我找了很多地方都找不到合适的路。
答案很接近,但必须重新加载页面对我来说不是一个选项。我们正在做的是删除elfinderdiv……所以在我看来,如果我们一开始就有代码来创建它,我们就不必重新加载它。
<div id="elfcontain"></div>
---------------------------------------------------------------------------
function filebrowser() {
$('#elfcontain').append('<div id="elfinder"></div>');
var elf = $('#elfinder').elfinder({
url: 'data/connector/connector.php', // connector URL (REQUIRED)
getFileCallback: function(url) {
console.log(url);
$('#elfinder').remove();
return url;
}
}).elfinder('instance');
}
只是给任何发现自己处于这种情况的人一个参考。由于我们每次都创建elfinderdiv,因此您现在可以随心所欲地隐藏/显示它,而无需重新加载。
几个小时后,我为您找到了一个解决方案,因为我遇到了完全相同的问题。我觉得还可以。
$().ready(function() {
$('#select-button').click(function(){
var f = $('#elfinder').elfinder({
url : 'plugins/elfinder/php/connector.php',
height: 490,
docked: false,
dialog: { width: 400, modal: true },
closeOnEditorCallback: true,
getFileCallback: function(url) {
$('#fileurl').val(url);
// CLOSE ELFINDER HERE
$('#elfinder').remove(); //remove Elfinder
location.reload(); //reload Page for second selection
}
}).elfinder('instance');
});
})
比您想象的要容易得多。
getFileCallback: function (filePath, fm) {
fm.hide();
}