如何在自己身上加上一个数字并在每次单击按钮时返回总数?

时间:2018-09-25 11:53:15

标签: javascript jquery

我得到的按钮是:当他们按一下时,它们会返回电流并加上那个数字,效果很好,但是按钮有30个 我想在第一个输出上返回30,然后再次单击以再次添加30,因此输出为60,90,120 .......

HTML

  <button data-value="1" class="numbs">1</button>
  <button type="button" data-value="2" class="numbs">2</button>
  <button type="button" data-value="3" class="numbs">3</button>
  <button type="button" data-value="4" class="numbs">4</button>
  <button type="button" data-value="30" class="numb">+30s</button>
  <input type="number" min="1" id="inputOutput">

JS / JQUERY

$(document).ready(function(){
   $('.numbs').click(function add(ev){
         var values =  ev.currentTarget.dataset.value;       
          console.log(values);
           var inputOutput = $('#inputOutput');
           var current = inputOutput.val();
           inputOutput.val(current + values);
           ev.stopPropagation();
       });
//for +30s button
 var $_30sec = $('.numb');
       var num ;
       var x  = 30;        
       $_30sec.click(function addthithy(ev){
            num = ev.currentTarget.dataset.value;
           var total  = Math.floor(num)+Math.floor(30);
           var inputOutput = $('#inputOutput');
//this prints out 30 only;
           var current = inputOutput.val(num);
          // console.log(num);
//this prints out 60 only;
          inputOutput.val(total);
           console.log(total);
       });
});

我实际上不知道如何做到这一点,因为每次单击按钮时要增加30。

如果在之前问过这个问题,我很抱歉,但是到处搜索都找不到我需要做的事。

1 个答案:

答案 0 :(得分:1)

使用以下代码更新代码

$(document).ready(function () {

        $('.numbs').click(function add(ev) {

            var values = ev.currentTarget.dataset.value;
            console.log(values);
            var inputOutput = $('#inputOutput');
            var current = inputOutput.val();
            inputOutput.val(current + values);
            ev.stopPropagation();

        });
        //for +30s button
        var $_30sec = $('.numb');
        var num;
        var x = 30;
        $_30sec.click(function addthithy(ev) {
            var inputOutput = $('#inputOutput');
            var clickCount = $(this).attr('click-count');
            inputOutput.val(parseInt(clickCount) * 30);
            var newClickCount = parseInt(clickCount) + 1;
            $(this).attr('click-count', newClickCount);

        });

    });

<button data-value="1" class="numbs">1</button>
<button type="button" data-value="2" class="numbs">2</button>
<button type="button" data-value="3" class="numbs">3</button>
<button type="button" data-value="4" class="numbs">4</button>
<button type="button" data-value="30" class="numb" click-count=1>+30s</button>
<input type="number" min="1" id="inputOutput">