1

我是 JQuery 新手,正在阅读有关将数据附加到 Jquery 对象的信息。我曾尝试创建一个计时器作为示例,但无法使其正常工作。是关于我正在使用的 JQuery 版本吗?我在网上找到了几个示例,但无法使我自己的代码正常工作。任何帮助都是可观的。下面是我的代码:

*

<style type="text/css">
.progresscont{
    width:200px;
    height:50px;
    float:left;
    background-color:#FFFFD5;
    border:solid 1px #CCC;
}
.progress{
    background-color:red;
    width:20px;
    height:50px;
}
.percenttext{
    font-weight:bold;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script language="javascript">
$(document).ready(function(){
var id=1,i=0;
//create a div with progress bar and the value
var progress = $('<div></div>')
.attr('id','progresscont'+id)
.addClass('progresscont')
.append(
    $('<div></div>')
    .addClass('progress')
    .append(
        $('<div>0%</div>')
        .attr('id','percenttext'+id)
        .addClass('percenttext')
    )
)
.data('perc','0')
.bind('setData',function(evt,key,value){
    switch(key){
    case 'perc':
    $(this).width(value+'%');
    break;
    }
}
)
.appendTo($(document.body));
});
function setcounter(val){
progress.data('perc',val);
setTimeout(setcounter(val+1),1000);
}
setcounter(0);
</script>

*

谢谢

4

2 回答 2

0

没有setData我知道的事件......也许在插件中?

无论哪种方式,尝试这样的事情(演示):

$(function () {
    var id = 1,
        i = 0;
    //create a div with progress bar and the value
    var progress = $('<div></div>')
        .attr('id', 'progresscont' + id)
        .addClass('progresscont')
        .data('perc', '0')
        .appendTo($(document.body))
        .append(
            $('<div></div>')
                .addClass('progress')
                .append(
                    $('<div>0%</div>')
                        .attr('id', 'percenttext' + id)
                        .addClass('percenttext')
                )
        );

    function setcounter(val) {
        if (val > 100) { return; }
        progress.data('perc', val)
            .find('.progress')
            .width(val + '%')
            .find('.percenttext').text(val + '%')
        setTimeout(function(){
            setcounter(val + 1);
        }, 50);
    }
    setcounter(0);

});
于 2013-05-26T18:45:01.990 回答
0

在jQuery 版本 1.8 或 1.9 之前已支持setData事件。我看到您使用的是 v.2.0。

于 2014-08-22T19:02:47.223 回答