jquery - 无法为 jQuery UI 进度条分配实际值

标签 jquery html jquery-ui jquery-ui-progressbar

我对 jQuery UI 进度条有疑问。我的页面上有多个进度条(用于指示多步进度的堆叠进度条)并且我有以下代码来启动进度条并分配值:

function createProgressBars(progressVal, progressValMax, callback) {

progressVal = $(this).data("progress-value");
progressValMax = $(this).data("progress-val-max");

$(".progress-bar").progressbar({
    value : progressVal,
    max : progressValMax
});

callback();}
jQuery(function($){
$(document).ready(function(){

    $(".progress-bar").each(function(){
        var pv = $(this).data("progress-value"),
            pm = $(this).data("progress-max");

        createProgressBars(pv, pm);
    });
});
});

编辑:添加 HTML 代码

<div class="progress-bar regular-user" data-progress-value="1000" data-progress-max="3000"></div>

<div class="progress-bar bronze-user" data-progress-value="500" data-progress-max="2000"></div>

<div class="progress-bar silver-user" data-progress-value="300" data-progress-max="2000"></div>

<div class="progress-bar gold-user" data-progress-value="200" data-progress-max="3000"></div>

但是在 HTML 属性中我有 aria-value-max=100aria-value-now=0

如何正确指定这些值?我对进度条(实际上是一个进度条)有同样的经历,而且效果很好。

谢谢你们。

最佳答案

您在 createPogressBar 中做的第一件事是用 this 覆盖这两个参数,此时它没有指向任何东西。 你可能会这样做:

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

    $(".progress-bar").each(function(){
        var pv = $(this).data("progress-value"),
            pm = $(this).data("progress-max");

       $(this).progressbar({
          value : pv,
          max : pm
       });
    });
});

或者通过仅发送 this 参数将代码移动到您的 createProgressBar 函数。

function createProgressBars(container, callback) {

progressVal = $(container).data("progress-value");
progressValMax = $(container).data("progress-val-max");

$(container).progressbar({
    value : progressVal,
    max : progressValMax
});

callback();}
jQuery(function($){
$(document).ready(function(){

    $(".progress-bar").each(function(){
        createProgressBars(this);
    });
});

编辑: 我更新了两个代码。在第一种情况下,我们需要使用 this 来创建正确的进度条,而不是通用选择器。

在第二种情况下,我们需要使用容器。

不这样做会尝试每次都重新生成所有进度条,这会导致奇怪的效果。

关于jquery - 无法为 jQuery UI 进度条分配实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20702424/

相关文章:

javascript - 获取 $(this).val() 的下一个元素

javascript - 如何将 Display None 属性添加到 Img 标签

javascript - 如何将日期选择器格式更改为 YYYY-MM-DD

javascript - 根据输入的字符数更改字体

javascript - 事件处理程序继续调用早于动画函数

jquery - SignalR : Could not cast or convert from System. 字符串到 System.Collections.Generic.IEnumerable

jquery - CSS 缩放 div 但希望 html 保持正常比例

javascript - 为动态创建的列表项及其内容添加单击操作

jquery - 基本的 Jquery Slider 间隔问题

javascript - HTML Canvas 缩放至图表上的区域