Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于布尔变量,向按钮添加和减去方法的简单方法是什么?_Javascript_Jquery - Fatal编程技术网

Javascript 基于布尔变量,向按钮添加和减去方法的简单方法是什么?

Javascript 基于布尔变量,向按钮添加和减去方法的简单方法是什么?,javascript,jquery,Javascript,Jquery,我正在写一个简单的游戏来帮助学习javascript。我希望发生的是,如果game.playerTurn为真,那么这个额外的方法将添加到我的按钮中。相反,如果game.PlayerTurn为false,则不希望执行此方法 .bind似乎会永远添加该方法(因此,如果语句不能真正工作)。绑定和解绑似乎有点笨手笨脚,因为每一轮都有12个按钮。外面的专家能给我指出正确的方向吗?通常的做法是什么 进一步信息:当轮到计算机时,我正在使用.trigger函数按下按钮并将其值存储在一个名为game.comput

我正在写一个简单的游戏来帮助学习javascript。我希望发生的是,如果game.playerTurn为真,那么这个额外的方法将添加到我的按钮中。相反,如果game.PlayerTurn为false,则不希望执行此方法

.bind似乎会永远添加该方法(因此,如果语句不能真正工作)。绑定和解绑似乎有点笨手笨脚,因为每一轮都有12个按钮。外面的专家能给我指出正确的方向吗?通常的做法是什么

进一步信息:当轮到计算机时,我正在使用.trigger函数按下按钮并将其值存储在一个名为game.computer的数组中。这一切都有效

if(game.playerTurn){  
    $( "#one" ).bind( "click", function() {
        game.player.push(1);
    });

    $( "#two" ).bind( "click", function() {
        game.player.push(2);
    });
}
走错路:

$( "#one" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push(1);
    }
});
顺便说一句,如果所有按钮都可以一起识别,并且使用
数据值
属性,则每个按钮不需要一个处理程序,您只需要一个处理程序:

 <button class="numeric" data-value="1">One</button>
 <button class="numeric" data-value="2">Two</button>

$( ".numeric" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push($(this).data('value'));
    }
});
1
两个
$(“.numeric”).bind(“单击”,函数(){
如果(游戏玩家回合){
game.player.push($(this.data('value'));
}
});
绕错方向:

$( "#one" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push(1);
    }
});
顺便说一句,如果所有按钮都可以一起识别,并且使用
数据值
属性,则每个按钮不需要一个处理程序,您只需要一个处理程序:

 <button class="numeric" data-value="1">One</button>
 <button class="numeric" data-value="2">Two</button>

$( ".numeric" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push($(this).data('value'));
    }
});
1
两个
$(“.numeric”).bind(“单击”,函数(){
如果(游戏玩家回合){
game.player.push($(this.data('value'));
}
});
绕错方向:

$( "#one" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push(1);
    }
});
顺便说一句,如果所有按钮都可以一起识别,并且使用
数据值
属性,则每个按钮不需要一个处理程序,您只需要一个处理程序:

 <button class="numeric" data-value="1">One</button>
 <button class="numeric" data-value="2">Two</button>

$( ".numeric" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push($(this).data('value'));
    }
});
1
两个
$(“.numeric”).bind(“单击”,函数(){
如果(游戏玩家回合){
game.player.push($(this.data('value'));
}
});
绕错方向:

$( "#one" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push(1);
    }
});
顺便说一句,如果所有按钮都可以一起识别,并且使用
数据值
属性,则每个按钮不需要一个处理程序,您只需要一个处理程序:

 <button class="numeric" data-value="1">One</button>
 <button class="numeric" data-value="2">Two</button>

$( ".numeric" ).bind( "click", function() {
    if(game.playerTurn){
         game.player.push($(this).data('value'));
    }
});
1
两个
$(“.numeric”).bind(“单击”,函数(){
如果(游戏玩家回合){
game.player.push($(this.data('value'));
}
});

您不应该使用bind,而应该使用bind

此外,您还可以将
布尔值
检查移到函数回调中。这将是一个很好的机会,可以使用命名函数而不是多个匿名函数来保存一些代码行:

$("#one").on("click", doClick(1));
$("#two").on("click", doClick(2));

function doClick(i) {
    return function() {
        if(game.playerTurn) game.player.push(i);
    }
}

您不应该使用bind,而是

此外,您还可以将
布尔值
检查移到函数回调中。这将是一个很好的机会,可以使用命名函数而不是多个匿名函数来保存一些代码行:

$("#one").on("click", doClick(1));
$("#two").on("click", doClick(2));

function doClick(i) {
    return function() {
        if(game.playerTurn) game.player.push(i);
    }
}

您不应该使用bind,而是

此外,您还可以将
布尔值
检查移到函数回调中。这将是一个很好的机会,可以使用命名函数而不是多个匿名函数来保存一些代码行:

$("#one").on("click", doClick(1));
$("#two").on("click", doClick(2));

function doClick(i) {
    return function() {
        if(game.playerTurn) game.player.push(i);
    }
}

您不应该使用bind,而是

此外,您还可以将
布尔值
检查移到函数回调中。这将是一个很好的机会,可以使用命名函数而不是多个匿名函数来保存一些代码行:

$("#one").on("click", doClick(1));
$("#two").on("click", doClick(2));

function doClick(i) {
    return function() {
        if(game.playerTurn) game.player.push(i);
    }
}

我很清楚:$(这个)指的是点击的按钮,('value')指的是数据值?@interestinall,yes@interestinall另一个答案指出,
bind
是绑定事件处理程序的一种老方法。在上使用
,我很清楚:$(这)指的是单击的按钮,('value')指的是数据值?@interestinall,yes@interestinall另一个答案指出,
bind
是绑定事件处理程序的一种老方法。在
上使用
,我很清楚:$(这)指的是单击的按钮,('value')指的是数据值?@interestinall,yes@interestinall另一个答案指出,
bind
是绑定事件处理程序的一种老方法。在
上使用
,我很清楚:$(这)指的是单击的按钮,('value')指的是数据值?@interestinall,yes@interestinall另一个答案指出,
bind
是绑定事件处理程序的一种老方法。在
上使用
,非常有用!这将大大减少我的代码。谢谢。非常有帮助!这将大大减少我的代码。谢谢。非常有帮助!这将大大减少我的代码。谢谢。非常有帮助!这将大大减少我的代码。谢谢