2016-09-05 12 views
-1

私は、引数である引数を取るjQuery関数を持っています。増加した引数値を持つ関数を呼び出すOnclick

ボタンをクリックしたときにこの関数を呼び出すボタンもあります。

ボタンをクリックするたびに増加するarg番号で関数を呼び出す方法を教えてください。

など。最初のボタンのクリック等

、第二ボタンのクリックがmyFunction(2)を呼び出し、myFunction(1)を呼び出し、私はボタンがargがクリックの数であるmyFunction(arg)を呼び出すためにクリックします。

myFunctionそれ自体はカウンタではなく、独自のコードです。

HTML:

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

JS:私はクリックごとにsinAjax(click number+100)を呼び出したい

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

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

更新コード:

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); 
} 

私が直面してる問題は、ボタンを一度だけ動作することで、その後、連続したクリックは私に同じ値を与えます。

+0

であるあなたがしようとしているものを私たちに示してください。 SOの質問は、[検索と研究](http://stackoverflow.com/help/dont-ask) – Praveen

+0

と表示されることが期待されています。編集されたコードは、私がソリューションとして投稿したコードのものですが、変更しました。 jQueryとイベントハンドラを持っているので、インラインスクリプト(例えばボタンに追加したonclick)を持たないことが非常に最善です。私が持っていた関数を変更するのはずっと優れていて、すでに関数をトリガするイベントハンドラがあったので、インラインonclickハンドラは必要ありません。 – gavgrif

+0

元のコードに唯一必要な変更は、(a)jQueryのクリックハンドラを正しくバインドすることです: '$( '#newData')click(setValue);'そして次に(b) 'sinAjax(newVal ) '()関数内から' 'onclick''属性を削除し、(c)インライン' onclick'属性を削除します。 – nnnnnn

答えて

0

あなたは、このタスクを達成する多くの方法があります:データ属性attrに増加する値を格納したり、単に:

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

が0(またはデータatttributeを使用)に、ボタンの値を設定し、ボタンの値を取得する関数を取得し、インクリメントしてから新しい値に設定します。そうすれば、あなたがprogrammticallyまたはクリックを経由して機能をトリガするかどうかは問題ではありません - アクションが同じ

$(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>

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