javascript – jquery计数器 – 允许多次点击li但只计算一次
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jquery计数器 – 允许多次点击li但只计算一次,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2303字,纯文字阅读大概需要4分钟。
内容图文
我正在制作一个像隐藏物品一样的迷你游戏.我是jQuery的新手.
我有一个表示页面上图像的项目列表.当需要提示来查找项目时,可以单击列表项目,它将启动动画以显示同名对象的位置.有一个计数器提供3个提示.这一切都有效.
我遇到的问题是,如果您多次单击同一个列表项,则会使用三个提示.如何让计数器只对每个列表项计数一次?因此,换句话说,您可以多次单击列表中的相同项目,但它只会将计数器减一.然后,如果您单击一个不同的列表项,它将再次减少一个计数器.
这是jsfiddle:http://jsfiddle.net/gudinne/ej4mLoze/
谢谢你的指导!
JS
// hintCounter of 3 counts down to 0 and changes behaviors
var hintCounter = 3;
$('.itemList li').on('click', function () {
// check if has hints
if (hintCounter > 0) {
hintCounter--;
$('.xHints').html(hintCounter + ' Hints');
} else {
// else show the message out of hints
$('.directions').html('Sorry you are all<br /> out of hints. <br />Keep Searching!');
}
});
HTML
<div class="itemWrapper">
<ul class="itemList">
<li class="baseball">Baseball</li>
<li class="bacon">Bacon</li>
</ul>
<div id="hintBox"> <span class="youHave">You Have</span>
<span class="xHints">3 Hints</span>
<p class="directions">Use a hint by clicking on a name in the list.</p>
</div>
CSS
.itemWrapper {
border: 2px solid;
width: 400px;
height: 271px;
white-space: normal;
position: relative;
}
.itemList {
margin: 0;
padding: 45px 55px;
}
.itemList li {
list-style-type: none;
position: relative;
cursor: pointer;
text-transform: uppercase;
font-size: 20px;
text-align: center;
}
#hintBox {
width: 300px;
margin: 0 auto;
text-align:center;
color: blue;
}
.xHints {
font-weight: bold;
}
解决方法:
您可以简单地添加一个类来告诉它们何时被使用(这也意味着您可以相应地设置它们的样式):
http://jsfiddle.net/TrueBlueAussie/ej4mLoze/1/
$('.itemList').on('click', 'li:not(.used)', function () {
$(this).addClass("used");
我将事件处理程序更改为委托事件处理程序,以便选择(即不是(.used))将在事件时发生(而不是在事件被注册时).
根据评论更新:
如果你想保留提示,但不减少计数器,你可以在决定减少时简单地测试一个类的存在:
例如http://jsfiddle.net/TrueBlueAussie/ej4mLoze/3/
$('.itemList').on('click', 'li', function () {
// check if has hints
if (hintCounter > 0) {
if (!$(this).hasClass("used")) {
hintCounter--;
}
$('.xHints').html(hintCounter + ' Hints');
} else {
// else show the message out of hints
$('.directions').html('Sorry you are all<br /> out of hints. <br />Keep Searching!');
}
$(this).addClass("used");
});
内容总结
以上是互联网集市为您收集整理的javascript – jquery计数器 – 允许多次点击li但只计算一次全部内容,希望文章能够帮你解决javascript – jquery计数器 – 允许多次点击li但只计算一次所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。