<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零。
答案 0 :(得分:0)
添加一个类以查看点击是否在同一元素上。
$(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;
$(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;
答案 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);
});
});
这与问题相符:
假设有一个错字&#34;这是新的,所以曾经被点击过&#34;意思是&#34;这是新的,所以从未点击过#34;