divがクリックされた回数を数えたいです。例えば、
<div id="id1">
click here..
</div>
<div id="id2">
click here..
</div>
......
これらのdivを1回だけクリックしたい。ユーザーが2回目にクリックすると、エラーメッセージが表示されます。誰でも助けることができますか?pls!
必要な div の数がわからない場合は、これらの div にクラスを追加し、次のように要素をクリックして配列を作成できます。
var clickedArr = new Array();
var clickedArr = [];
$('.SpecialDiv').click(function(){
if(jQuery.inArray($(this).attr('id'),clickedArr)!=-1){
alert("Error already clicked");
}else{
clickedArr.push($(this).attr('id'));
}
});
この例では、SpecialDiv (唯一のクラス名です。変更できます。クリック可能なこれらの div をマークするためだけです) クラスをコードに追加する必要があります。
<div class="SpecialDiv" id="id1">
click here..
</div>
<div class="SpecialDiv" id="id2">
click here..
</div>
......
$('div[id^=id]').click(function(){
if( $(this).hasClass('clicked') ){
alert('Already selected');
return;
}
$(this).addClass('clicked');
});
$('div[id^=id]')
div
ID が ( ^
) " id
"
で始まるすべての要素を検索しますclicked
)n = 0;
$('#id1').click(function() {
if(n > 1) {
$('#id1').update("Error, you have clicked " + n + " times");
}
n++;
});
one()を使用してみてください
$("#id1").one("click", function() {
alert("Here after you cant click Div id1. Only once fired");
});