【发布时间】:2016-02-17 16:21:49
【问题描述】:
我正在尝试创建一个函数,当用户单击具有“n”类的表的 td 元素时,计数器会增加一个。
然而,在点击 td 元素时,它也会被分配到“selected”类。所以我想要做的是当用户再次点击“选择”类的元素时,计数器变为-1。
基本上它应该像一个切换开关一样工作,一旦它被点击,它的 +1 并再次点击它,它会变成 -1。我试过这个功能,但它不起作用。
下面的代码是我的函数:
$('#plan td')
.bind('click',function(event) {
if ($(this).hasClass("n"))
count +=1;
}).bind('click',function(event) {
if ($(this).hasClass("selected"))
count -=1;
$('.msg span.count').html(count);
});
这是分配“选定”类的责任:
$('#plan td.n').click(function(){
if (!$(this).hasClass("taken"))
if ($(this).hasClass("selected") || $(".selected").length < 4)
$(this).toggleClass("selected");
});
这是html部分:
<div id='plan'>
<table>
<tr>
<td class='n' id='_1a'>T</td>
<td class='n' id='_1b'>F</td>
<td class='n' id='_1c'>T</td>
<td>1</td>
<td class='n' id='_1d'>T</td>
<td class='n' id='_1e'>F</td>
<td class='n' id='_1f'>T</td>
</tr>
</table>
</div>
【问题讨论】:
-
1) 为什么不直接使用
$('#plan .n').click? 2) 你说它在点击时被分配了selected类,但看起来你并没有这样做。 3)不要分配多个点击处理程序。在您的一个处理程序中,只需检查它是否具有selected类,然后根据该类递增或递减。 -
还有更多:1)
msg类的 HTML 部分在哪里? 2)和takenclass? 3)$(".selected").length < 4的逻辑是什么? -
我刚刚发布了一些代码,msg 类用于在 html 中显示计数,长度为
-
如果计数器在 1 并且您单击另一个按钮,计数器会转到 2,还是每个按钮都有自己的计数器?
标签: javascript jquery html count