a
パラメータとして渡すのではなく、クリックされたリンクをその ID (まだ定義していません) を介して渡します。関数に渡しthis
ます。
<a id='linka' href="#" onclick='swapPost(this)'>LinkA</a>
<a id='linkb' href="#" onclick='swapPost(this)'>LinkB</a>
var a=0;
function swapPost(nodeClicked){
// Check the id of the node passed to the function.
if (nodeClicked.id == 'linka') {
a++;
}
else if (nodeClicked.id == 'linkb') {
a--;
}
else return;
// Set to zero if outside your bounds
if(a>10){
a=0;
}
if(a<0){
a=0;
}
}
これが実際の動作で、コンソールにログを記録しています...
一般に、関数をインラインで属性にコーディングするよりも、関数をイベントにバインドすることをお勧めします。this
内部はクリックされたノードを参照するためonclick
、実際にパラメーターとして渡す必要はありません。次に、インラインで実行せずに onclick イベントをバインドし、this
内部で呼び出すことができます。
<a id='linka' href="#">LinkA</a>
<a id='linkb' href="#">LinkB</a>
var a=0;
var swapPost = function(){
// Check the id of the node passed to the function.
if (this.id == 'linka') {
a++;
}
else if (this.id == 'linkb') {
a--;
}
else return;
// Set to zero if outside your bounds
if(a>10){
a=0;
}
if(a<0){
a=0;
}
}
// Bind the function to the links
document.getElementById('linka').onclick = swapPost;
document.getElementById('linkb').onclick = swapPost;
更新されたバージョンの動作は次のとおりです