【问题标题】:Fine Uploader 4 and how to theme progress bar using jquery uiFine Uploader 4 以及如何使用 jquery ui 为进度条设置主题
【发布时间】:2014-01-02 21:25:49
【问题描述】:

我想知道在 Fine Uploader 中使用 JQuery UI 进度条的推荐方式是什么。

在我的模板中,我有以下 div:

           <div class="qq-progress-bar-container-selector">
              <div class="qq-progress-bar-selector tu-progress-bar"></div>
           </div>

我遇到的第一个问题是如何以及何时指定进度条 div 应该是 jquery ui 小部件。由于它是模板的一部分,因此在 Fine Uploader 创建第一个项目之前,它在技术上并不存在。所以在“提交”事件中,我有以下代码:

           .on('submitted', function(event, id, name) {
              var item = $("#fineuploader-s3").fineUploaderS3("getItemByFileId", id);
              item.data('itemid', id);

              var progressBar = item.find(".tu-progress-bar");
              progressBar.progressbar();
              progressBar.progressbar("option", "max", 100);
              progressBar.progressbar("option", "value", 0);
           })

虽然创建了进度条,但进度条的宽度会发生变化,而不是进度条中的值。内部 div 的宽度需要 Fine Uploader 定期更新,或以其他方式更新。

所以在我开始破解这个方法之前,我想知道是否有更好的方法来做到这一点。

谢谢。

【问题讨论】:

    标签: jquery-ui fine-uploader


    【解决方案1】:

    如果您希望 Fine Uploader 为您更新进度条,您需要为其提供一个元素。正如您所提到的,Fine Uploader 会随着文件上传的进行调整此元素的宽度。如果您想使用 jQuery UI 进度条小部件,您需要提供一个“进度”事件处理程序并通过小部件的 API 适当地更新进度条。您可以在文档中阅读有关进度事件的更多信息,例如 progress bar feature pagecorresponding entry on the events page

    【讨论】:

    • 谢谢雷的回答。尽管我在上面回答,最后我可能会尝试使用 ASP.NET 进度条控件,我相信这只能通过处理您在回答中详细说明的进度事件来完成。
    • 公平地说,如果您想将 Fine Uploader 与 jQuery UI 小部件(例如,除了进度条之外的按钮和列表)一起使用,以便它无缝集成到 jQuery UI 应用程序中,那么有一个需要完成大量集成工作?
    【解决方案2】:

    我能够通过 JQuery UI 选择器跳过进度条的实际指定来完成使用 JQuery UI 进度条,而是手动嵌入 JQuery UI 添加到 div 开始的相同类。然后我将 qq-progress-bar-selector 添加到相当于传统 JQuery UI 进度条的“内部”div 中。

    最后,Fine Uploader 默认进度条模板 div 所需的唯一更改如下:

               <div class="qq-progress-bar-container-selector">
                  <div class="tu-progress-bar ui-progressbar ui-widget ui-widget-content ui-corner-all" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0" style="width: 300px;">
                     <div class="qq-progress-bar-selector ui-progressbar-value ui-widget-header ui-corner-left" style="width: 0%;"></div>
                  </div>
               </div>
    

    如果有人能想到任何理由这样做会以某种方式成为不好的形式,或者在其他情况下造成灾难性后果,我非常想知道。

    【讨论】:

    • 啊,所以你只是在使用 jQuery UI 为进度条提供的 CSS,而不是使用小部件。我似乎可以接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 2011-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    相关资源
    最近更新 更多