从外部函数设置jQuery函数变量

时间:2013-07-25 00:28:17

标签: javascript jquery html css

我正在使用jQuery ProcessBar [自定义标签版本]。我正在制作它,所以我可以检查里面的值。我关心条形图的百分比和显示的文本。我可以从函数内部更改这些值。注意“进度(15);”和“progressLabel.text(”text“);”

我想从我体内改变这些。我怎么能这样做?

我对代码也有点困惑,因为最初这是一个完整的功能。意思是他们建造它炫耀。因此,当您运行页面时,它会自动从0到100%完成。我的目标是控制它。

$(function() 
{
    var progressbar = $( "#progressbar" ),
    progressLabel = $( ".progress-label" );

    progressbar.progressbar(
    {
        value: false,
        change: function() 
        {
            progressLabel.text( progressbar.progressbar( "value" ) );
        },
        complete: function() 
        {
            progressLabel.text( "Complete!" );
        }
    });

    function progress(val) 
    {
        progressbar.progressbar( "value", val );

        if ( val < 99 ) 
        {    
            setTimeout( progress, 100 );
        }
    }

    progress(15);
    progress(20);
    progress(99);
    progressLabel.text("text");
    setTimeout( progress, 3 );
});

现在我正在尝试:

$('#progressbar').progressLabel.text('text');

值得一提的是,我对jQuery很新。

1 个答案:

答案 0 :(得分:1)

你非常接近。但是,您要做的是将参数传递给progress函数,但它不使用任何参数。将函数修改为如下所示:

function progress (newValue) {
    progressbar.progressbar("value", newValue);
}

然后你输入这样的任意值:

progress(15);
progress(20);
progress(90);
// Change the label
progressLabel.text("text");
progress(99);
// Progress label will automatically change to "Complete!"
progress(100);

这些将立即运行,因此您需要逐行注释掉它们并重新加载页面以查看差异。

我还删除了两个setTimeout调用,因为第一个用于演示目的,而你的只是启动了演示函数。