改变$(这个)的等级

时间:2012-03-05 21:36:59

标签: jquery css

我有一个<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

3 个答案:

答案 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');

现在,跨度不再可点击,但保留了类以及与之相关的任何风格。