监控每个列表项获得的点击次数

时间:2015-09-06 15:40:28

标签: javascript jquery

<ul>
 <li>box</li>
 <li>box</li>
 <li>box</li>
 <li>box</li>
 <li>box</li>
</ul>


$(function(){
  var counter = 0;
  $('li').click(function(){
  if(counter > 0) {
    return false;
  } else {
    counter++;
  }
 });
});

我有类似的东西。当列表项单击增加我的计数,但如果此列表项是新的,所以有点击,然后开始incerement零。

https://jsfiddle.net/pzzzy97v/

3 个答案:

答案 0 :(得分:0)

添加一个类以查看点击是否在同一元素上。

重置计数器

&#13;
&#13;
$(function() {
  var counter = 0;
  $('li').click(function() {
    if ($(this).hasClass('active'))
      counter++;
    else {
      $('li').removeClass('active');
      $(this).addClass('active');
      counter = 1;
    }
    $('span').html(counter);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul>
  <li>box</li>
  <li>box</li>
  <li>box</li>
  <li>box</li>
  <li>box</li>
</ul>
<span></span>
&#13;
&#13;
&#13;

每个项目的计数器

&#13;
&#13;
$(function() {
  $('li').data('count',0);
  $('li').click(function() {
    var thisCount = $(this).data('count');
    thisCount++;
    $(this).data('count',thisCount);
    $('span').html(thisCount);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul>
  <li>box</li>
  <li>box</li>
  <li>box</li>
  <li>box</li>
  <li>box</li>
</ul>
<span></span>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我认为这个阵列技巧会做你需要的。您可以尝试以下代码:

$(function(){
   var liClickCnt = new Array();
    $('li').click(function(){
        var counter = 0;
        var liIndex = $(this).index();
        liClickCnt[liIndex] = (liClickCnt[liIndex]) ? ++liClickCnt[liIndex] : ++counter;        
       $('span').html(liClickCnt[liIndex]);
    });
});

答案 2 :(得分:0)

将问题标题计算在内[请参阅我在那里做了什么?],您可以为每个li添加一个数据属性,以记录它被点击的次数:

$(function() {
    // set them all on startup for clarity
    $("li").data("clickcount", 0);
    $("li").click(function() {
        // increment click count on each
        $(this).data("clickcount", $(this).data("clickcount") + 1);
    });
});

这与问题相符:

  • 监控每个列表项[获取]的点击次数
  • 当列表项单击增量[my] count
  • 但是如果这个列表项是新的,那么[从未]被点击过,那么开始递增[对于该列表项] [at]为零。

假设有一个错字&#34;这是新的,所以曾经被点击过&#34;意思是&#34;这是新的,所以从未点击过#34;