如何计算点击DIV的次数?

时间:2012-12-26 11:47:33

标签: jquery html

我想计算div点击的次数。例如,

<div id="id1">
  click here..
</div>
<div id="id2">
  click here..
</div>
......

我想只点击这些div一次。如果用户第二次单击,则会显示错误消息。 有人可以帮忙吗? PLS!

7 个答案:

答案 0 :(得分:4)

您可以使用.one绑定长期错误消息处理程序:

$("div").one("click", function (event) {
    alert("No error.");
    $(this).on("click.error", function (event) {
        alert("Error from now on.");
    });
});

通过使用.one,我们可以保证外部处理程序只运行一次,然后立即取消绑定。这已经足够了,因为第一次运行时,它会设置一个新的处理程序(在click.error下),它将在文档的持续时间内生效,“防止”任何进一步的点击。

小提琴:http://jsfiddle.net/EJ6CL/1/

答案 1 :(得分:0)

jsBin demo

$('div[id^=id]').click(function(){
      if( $(this).hasClass('clicked') ){
          alert('Already selected');
          return;
      }
      $(this).addClass('clicked');   
});
  • $('div[id^=id]')将查找ID以(div)“^”开头的所有id元素
  • 而不仅仅是检查你想要的班级名称(我使用clicked
  • 如果该课程不存在,只需添加即可。

答案 2 :(得分:0)

n = 0;
$('#id1').click(function() {
  if(n > 1) {
     $('#id1').update("Error, you have clicked " + n + " times");
  }
  n++;
});

答案 3 :(得分:0)

尝试使用one()

$("#id1").one("click", function() {
  alert("Here after you cant click Div id1. Only once fired");
});

答案 4 :(得分:0)

如果要将数据保存在数据库中,可以使用ajax代码。

您可以在点击事件上初始化ajax代码,并在其他页面上执行您的代码 喜欢这段代码。

$(".button_id").live("click",function(){
var vid=this.id;
//alert(this.id);
$.ajax({
type    :   'POST',
url     :   'test.php',
data    :   'vid='+vid+'&condition=unlike',
success :   function(data) {

}
});

答案 5 :(得分:0)

one就是您所需要的......

http://jsfiddle.net/Pd6Jd/2/

$("#id1").one("click", function() {
  alert("This will be displayed only once.");
});​

答案 6 :(得分:0)

如果您不知道需要多少div,可以在这些div中添加class并使用单击的元素构建一个数组:

    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>
......