我有一个<span>
按钮,它调用一些jQuery,我需要一种方法然后禁用它(如果可能的话,它是相应的向上/向下按钮)被重复点击。我已经为按钮制作了事件处理程序:
$('.RateDown').click(function() {
//down counter
var downValue = parseInt($(this).text());
downValue--;
$(this).text(downValue);
//total counter
var totalValueElement = $(this).prevAll('.RateTotal').first();
var totalValue = parseInt(totalValueElement.text());
totalValue--;
totalValueElement.text(totalValue);
});
(与RateUp相似)
相关的HTML如下
<div class='RateBar'>
<span class='RateTotal'>0</span><br />
<span class='RateUp'> +0</span>
<span class='RateDown'> -0</span>
</div>
这暂时有效,但是任何人都可以反复垃圾邮件按钮,所以我想如果我把它的类更改为“额定”类,那就不会点击了。我尝试过使用.attr()
功能,但这没有成功。是否可以通过这种方式或其他方式禁用它?我玩了一个禁用的布尔值,在点击时更改它,但是在页面上有多个按钮,这是不切实际的。
(按钮目前为here)
答案 0 :(得分:2)
在click事件上使用jQuery .one - 它只绑定一次。 - http://api.jquery.com/one/
答案 1 :(得分:0)
您可以添加一个类并删除点击处理程序:
$(this).addClass("disabled").off("click");
同样的另一个按钮:
$(this).siblings(".RateUp").addClass("disabled").off("click");
注意: off
已在1.7中添加,对于以前的版本,请使用unbind
。
答案 2 :(得分:0)
你有一些选择:
$(this).attr('class','rated');
这会将您的课程更改为分级,从而无法点击范围。
另一个可能更好的解决方案是:
$(this).unbind('click');
现在,跨度不再可点击,但保留了类以及与之相关的任何风格。