0

我需要一些关于如何实现颜色框回调的帮助,不知道该怎么做。

当用户单击父表单上的“添加图像”按钮时,我有一个表单会在颜色框模式窗口中弹出。用户从此表单(称为文件管理器)中选择或上传图像,目前我在该表单中有一个脚本,该脚本在颜色框关闭之前填充父表单。这种方法有效。

但是我知道想继续在其他页面中重新使用这个文件管理器所以这个方法不再实用所以我试图重新设计以便表单返回上传项目的值并让父表单处理需要的内容以形式更新 - 使我的文件管理器对我的应用程序更加通用。

找到了一篇自定义colorbox的close方法的帖子:

jQuery(document).ready(function($) {

    var originalClose = $.colorbox.close;
    $.colorbox.close = function(){
        var response;
        if($('#cboxLoadedContent').find('form').length > 0){
           response = confirm('Do you want to close this window?');
           if(!response){
              return; // Do nothing.
           }
        }

        alert(filename); 
        //do something before close
        originalClose();
    }; 

    $('#add-image').click(function(event) {
        $.colorbox({href:"/filemanager/"});
        return false;
    });
});

在模态表单中,有一个名为“文件名”的脚本变量,我想我可以简单地引用它——在我的测试中它是未定义的——这是有道理的,也是预期的,因为“文件名”的对应不是全局的。

从模态表单中检索值的最佳方法是什么(作为 javascript 变量存在?我需要考虑全局变量吗?

有没有办法让颜色框在它的关闭回调中传回一个值?

是否有可以拉出 ajax 表单并返回值的颜色框的替代品?

迷茫和不确定要走的路。

谢谢

4

1 回答 1

0

您可以在 colorbox 插件中编写如下所示的 publicMethod,然后在调用的 onClosed 事件中调用该 publicMethod 以检索数据。

在 colorbox 插件中,进行以下更改:

publicMethod.get_selected_files = function() {
// You can store all the selected files in an array which will be defined as the global variable inside colorbox plugin 
    return selectedFiles;
}

在调用颜色框的调用中,添加 onClosed 事件,如下所示:

onClosed:function(){
    $.colorbox.get_selected_files();
}
于 2018-07-30T12:03:07.707 回答