Onclick调用具有增加的参数值的函数

时间:2016-09-05 23:36:23

标签: javascript jquery html5 function button

我有一个jQuery函数,它接受一个参数(让我们说arg)是一个数字。

我还有一个按钮,可以在单击按钮时调用该功能。

如何通过每次点击使按钮调用具有增加的arg编号的功能?

E.g。第一个按钮单击调用myFunction(1),第二个按钮单击调用myFunction(2)

我希望按钮点击调用myFunction(arg),其中arg是点击次数。

myFunction本身不是一个计数器,它是自己的代码。

HTML:

<button  id='newData' value=0 onclick='sinAjax()'>New Data</button>

JS:

$(document).ready(function() 
{
    setValue();
    $('#newData').onclick('click', setValue);
});

function setValue()
{
    var val = parseInt($('#newData').val());
    var newVal = val +=100;
    $('#newData').val(newVal);
}

我想在每次点击时调用sinAjax( click number+100 )

更新的代码:

HTML:

<button  id='newData' value=0 >New Data</button>

JS:

$(document).ready( function() {
    setValue();
    $('#newData').click( function () {
        sinAjax(val);
    }) ;    
}) ;  

function setValue() {
    val = parseInt($('#newData').val());
    var newVal = val +=100;
    $('#newData').val(newVal);
}

我遇到的问题是按钮只能工作一次,然后连续点击会给我相同的值。

3 个答案:

答案 0 :(得分:0)

您有很多方法可以完成此任务:将增加的值存储到data-attr属性中,或者只是:

var counter = 0;
$(element).on('click', function() {
  myFunction(counter++);
});

答案 1 :(得分:0)

将按钮的值设置为0(或使用数据atttribute),获取函数以获取按钮的值。,递增它,然后将值设置为新值。这样,无论是以编程方式还是通过点击触发函数都无关紧要 - 动作是相同的

$(document).ready(function(){
 setValue();
 $("#myButton").on('click',setValue)
   })
 
 function setValue(){
   var val = parseInt($("#myButton").val());
   var newVal = val += 1;
   $("#myButton").val(newVal)
   console.log("New Value is: " + newVal)
   }
   
                  
                  
 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type ="button" value="0" id="myButton">Click Me</button>

答案 2 :(得分:0)

<button clickTime="1" onclick="myFunction(this.getAttribute('clickTime'),this)">遁地龙卷风</button>
function myFunction(time,target)
{
    alert(time)
    target.setAttribute('clickTime',+time+1)
}