不是选择器不能在jQuery中工作

bbo*_*tle 1 html css jquery

我认为应该正常工作的代码非常简单.稍微混淆为什么不是.

我有一个带有'右'类的箭头,当你点击它时,年变量会上升.当达到某一年时,这个div也会被赋予"死"类,我希望它能够杀死click函数,所以我添加了"not"选择器作为click函数的条件.但是,当您单击按钮时,年份将继续增加.

有任何想法吗?

在控制台打开的情况下,尝试单击右侧的蓝色栏以查看结果

$('.right').not('.dead').click(function(){
    year += 1;
    console.log(year);
    if (year === 2015){
        $(this).addClass('dead');
    }
});
Run Code Online (Sandbox Code Playgroud)

bfo*_*ine 5

$('.right').not('.dead')代码的一部分只评估一次; 不是每次点击其中一个.

您可以尝试类似以下内容:

$('.right').click(function(){
    if ($(this).hasClass('dead')) { return; }
    year += 1;
    console.log(year);
    if (year === 2015){
        $(this).addClass('dead');
    }
});
Run Code Online (Sandbox Code Playgroud)