2

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

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

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

4

7 回答 7

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/

于 2012-12-26T12:03:03.567 回答
0

如果您不知道需要多少个 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>
......
于 2012-12-26T12:08:45.353 回答
0

jsBin 演示

$('div[id^=id]').click(function(){
      if( $(this).hasClass('clicked') ){
          alert('Already selected');
          return;
      }
      $(this).addClass('clicked');   
});
  • $('div[id^=id]')将查找divID 以 ( ^) " id" 开头的所有元素
  • 不仅仅是检查你想要的类名(我用过clicked
  • 如果该类不存在,只需添加它。
于 2012-12-26T11:53:54.073 回答
0
n = 0;
$('#id1').click(function() {
  if(n > 1) {
     $('#id1').update("Error, you have clicked " + n + " times");
  }
  n++;
});
于 2012-12-26T11:53:55.173 回答
0

尝试使用one()

$("#id1").one("click", function() {
  alert("Here after you cant click Div id1. Only once fired");
});
于 2012-12-26T11:53:56.793 回答
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) {

}
});
于 2012-12-26T11:57:44.360 回答
0

one是你需要的..

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

$("#id1").one("click", function() {
  alert("This will be displayed only once.");
});​
于 2012-12-26T11:58:48.487 回答