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