jquery - 如何用jQuery制作动态进度条

标签 jquery addition

我正在尝试做一些如此琐碎和简单的事情,但已经撞了我的头一个小时了。我试图通过每次用户单击按钮时添加 10 来使进度条向前移动,但只有第一次单击有效。我想我需要第二双眼睛,因为我没有看到我错在哪里。显然我在某个地方错了。

我在这里重现了用例:

$(document).ready(function() {
     $('#increaseMeter').click(function(e){
            e.preventDefault();
                            //get meter progress number
                             var progress = $('.barmeter').attr('meterprogress');
                           
                             //add 10 to the meter
                             var mathnum =progress;
                             mathnum += parseInt(progress)+parseFloat(10);
                             
                            //format new classes depending on progress number
                             if(progress <60){
                             var newclass = 'progress-bar-warning';
                             }else{
                             var newclass = 'progress-bar-success';    
                             }
                             //update meter progress attribute
                             $('.barmeter').attr('meterprogress='+mathnum);
                            
                             //add class to meter
                             $('.barmeter').addClass(newclass);
                             
                             //change style width
                             $('.barmeter').attr('style', 'width:'+mathnum+'%');
                             
                             //change aria value
                             $('.barmeter').attr('aria-valuenow', mathnum);
                             
                             //display new text
                             $('.metertext').html(mathnum+'%');
     });
});
   <!-- bootstrap css stylesheets -->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
        <!-- bootstrap javascript, jquery -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<p>
 <br><br>
  <div class="container">
<button class="btn btn-lg btn-primary" 
        id="increaseMeter">
  Increase Meter
    </button>
</p> <br><br>



 <div class="col-md-6">
<div style="" class="salesmeter"> 
                       Meter Probability
        <div class="progress">
              <div class="progress-bar barmeter" 
                        meterprogress="0"
                        role="progressbar" 
                        aria-valuenow="0"
                        aria-valuemin="0" 
                        aria-valuemax="100">
                        <span class="metertext"></span>
                        </div> </div></div>

最佳答案

$(document).ready(function() {
     $('#increaseMeter').click(function(e){
            e.preventDefault();

                            //get meter progress number
                             var progress = parseInt($('.barmeter').attr('meterprogress'));

                             //add 10 to the meter
                             var mathnum  =  progress + parseFloat(10);

                            //format new classes depending on progress number
                             if(progress <60){
                                //add class to meter
                             $('.barmeter').addClass('progress-bar-warning');

                             }else{
                               $('.barmeter').addClass('progress-bar-success').removeClass('progress-bar-warning');

                             }
                             //update meter progress attribute
                             $('.barmeter').attr('meterprogress' , mathnum);


                             //change style width
                             $('.barmeter').attr('style', 'width:'+mathnum+'%');

                             //change aria value
                             $('.barmeter').attr('aria-valuenow', mathnum);

                             //display new text
                             $('.metertext').html(mathnum+'%');
     });
});

https://codepen.io/vommbat/pen/LBBpRz/

关于jquery - 如何用jQuery制作动态进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691089/

相关文章:

javascript - 从 Deferred.Done 检索返回值

Jquery悬停功能并在平板电脑上点击

javascript - 使用参数创建动画队列

java - 无法使用逗号和字符串标记器对数字求和

c# - C# 如何将多个数据表的数据插入到一个数据表中

optimization - 在汇编器中添加两个 32 位整数以供在 VB6 中使用

javascript - 用图像替换单选框(Javascript 或 Jquery)

javascript - 如何监听 Bootstrap 下拉菜单中按钮的点击? -Javascript

C# 添加可空小数和 ?? 的优先级运算符(operator)

objective-c - 编辑模式下的Uitableview : how to add both the "+" (add) and "-" (delete) buttons at the same time?