我想在JavaScript中使计数器功能动态化

时间:2018-10-28 15:53:50

标签: javascript jquery

我在循环中调用了一个计数器函数。每页有4个项目。 我已经通过$ i循环并编写了4个函数 但是如果我将分页限制更改为5或10,则不是一个好的解决方案 有人可以帮我解决吗? 这是我在foreach循环中的div,其中我叫函数

<div class="tick"
         data-value="'.$start.'"
         data-did-init="handleTickInit'.$i.'">

        <div data-layout="horizontal center" 
             data-repeat="true"
           ">

            <div data-view="swap"
                ></div>

        </div>

handleTickInit'。$ i是函数

 function handleTickInit2(tick) {

        var value = tick.value;
        var target = 0;

        var timer = Tick.helper.interval(function() {

            // have we reached the donation target yet?
            if (value>=target) {
                // no, keep going

                var realprice=$("#realprice-2").val();

               var startdate=$("#startdate-2").val();


             var currenttime =  Math.round((new Date()).getTime()/1000);

              var stepsec=$("#stepsec-2").val();
              // alert(stepsec);

              var diffsec=currenttime-startdate;
             var loss=diffsec*stepsec;

                   var start=realprice-loss;

                tick.value =  start.toFixed(4);
             $("#saveval-2").val(start);
            // value= tick.value ;
            }
            else {
                // yes, stop the timer
                timer.stop();
            }
        }, 1000);

    }

请提供一些解决方案以使其动态化

1 个答案:

答案 0 :(得分:0)

尝试一下

var handleTickInit = {};
var num = 5;


var handleFunc = function() {
  return function (tick) {

        var value = tick.value;
        var target = 0;

        var timer = Tick.helper.interval(function() {

            // have we reached the donation target yet?
            if (value>=target) {
                // no, keep going

                var realprice=$("#realprice-2").val();

               var startdate=$("#startdate-2").val();


             var currenttime =  Math.round((new Date()).getTime()/1000);

              var stepsec=$("#stepsec-2").val();
              // alert(stepsec);

              var diffsec=currenttime-startdate;
             var loss=diffsec*stepsec;

                   var start=realprice-loss;

                tick.value =  start.toFixed(4);
             $("#saveval-2").val(start);
            // value= tick.value ;
            }
            else {
                // yes, stop the timer
                timer.stop();
            }
        }, 1000);

    }
}


for(var i = 0; i< num; i++){
   handleTickInit[i] = handleFunc();
}

console.log(handleTickInit);

您所有的句柄刻度线功能都在handleTickInit中;