Javascript 如何限制对元素的单击

Javascript 如何限制对元素的单击,javascript,jquery,click,flip,Javascript,Jquery,Click,Flip,我的想法是创造翻转纸牌游戏。当用户翻转卡片时,他会收到随机生成的点数。好的,现在用户可以翻转卡片并检查他将获得多少积分,但我想限制他可以翻转的卡片数量。例如,现在有4张卡。应该只有两个可以打开。我将感谢你的每一个建议 $('.front').html('dd'); $('.card')。每个(函数(){ $(此)。在(“单击”,函数()上){ $(this.addClass(“翻转”); }); }); 函数getNumber(){ $('.card.back')。每个(函数(){ var-m

我的想法是创造翻转纸牌游戏。当用户翻转卡片时,他会收到随机生成的点数。好的,现在用户可以翻转卡片并检查他将获得多少积分,但我想限制他可以翻转的卡片数量。例如,现在有4张卡。应该只有两个可以打开。我将感谢你的每一个建议

$('.front').html('dd');
$('.card')。每个(函数(){
$(此)。在(“单击”,函数()上){
$(this.addClass(“翻转”);
});
});
函数getNumber(){
$('.card.back')。每个(函数(){
var-minNumber=0;
var maxNumber=2;
var randomnumber=Math.floor(Math.random()*(maxNumber+1)+minNumber);
$(this).html(随机数);
});
}
getNumber()
.container{
宽度:200px;
高度:260px;
浮动:左;
位置:相对位置;
边框:1px实心#ccc;
-webkit透视图:800px;
-moz透视图:800px;
-透视图:800px;
透视图:800px;
}
.卡片{
宽度:100%;
身高:100%;
位置:绝对位置;
-webkit转换:-webkit转换1s;
-moz变换:moz变换1s;
-o-转变:-o-转变1s;
转变:转变1s;
-webkit变换样式:保留-3d;
-moz变换样式:preserve-3d;
-o变换样式:preserve-3d;
变换样式:保留-3d;
-webkit转换来源:50%50%;
}
.信用卡部{
显示:块;
身高:100%;
宽度:100%;
线高:260px;
颜色:白色;
文本对齐:居中;
字体大小:粗体;
字体大小:140px;
位置:绝对位置;
-webkit背面可见性:隐藏;
-moz背面可见性:隐藏;
-o-背面-可见性:隐藏;
背面可见性:隐藏;
}
.名片.正面{
背景:红色;
}
.卡,回来{
背景:蓝色;
-webkit变换:旋转(180度);
-莫兹变换:旋转(180度);
-o变换:旋转(180度);
变换:旋转(180度);
}
.翻了{
-webkit变换:旋转(180度);
-莫兹变换:旋转(180度);
-o变换:旋转(180度);
变换:旋转(180度);
}

要限制可以翻转的卡片数量,请在
单击
处理程序中添加一个条件,该处理程序将检查类
翻转的卡片数量。如果已经存在两个,那么您可以禁止任何进一步的点击产生效果

还要注意,您不需要使用
each()
循环向多个元素添加
click()
处理程序。类似地,设置
html()
也不需要循环,只需提供一个返回要设置的值的函数即可。试试这个:

$('.front').html('dd');
$('.card')。打开(“单击”,函数(){
如果($('.fliped')。长度<2){
$(this.addClass(“翻转”);
}否则{
log('你已经翻了两张牌!');
}
});
函数getNumber(){
var-minNumber=0;
var maxNumber=2;
$('.card.back').html(函数(){
返回Math.floor(Math.random()*(maxNumber+1)+minNumber);
});
}
getNumber()
.container{
宽度:200px;
高度:260px;
浮动:左;
位置:相对位置;
边框:1px实心#ccc;
-webkit透视图:800px;
-moz透视图:800px;
-透视图:800px;
透视图:800px;
}
.卡片{
宽度:100%;
身高:100%;
位置:绝对位置;
-webkit转换:-webkit转换1s;
-moz变换:moz变换1s;
-o-转变:-o-转变1s;
转变:转变1s;
-webkit变换样式:保留-3d;
-moz变换样式:preserve-3d;
-o变换样式:preserve-3d;
变换样式:保留-3d;
-webkit转换来源:50%50%;
}
.信用卡部{
显示:块;
身高:100%;
宽度:100%;
线高:260px;
颜色:白色;
文本对齐:居中;
字体大小:粗体;
字体大小:140px;
位置:绝对位置;
-webkit背面可见性:隐藏;
-moz背面可见性:隐藏;
-o-背面-可见性:隐藏;
背面可见性:隐藏;
}
.名片.正面{
背景:红色;
}
.卡,回来{
背景:蓝色;
-webkit变换:旋转(180度);
-莫兹变换:旋转(180度);
-o变换:旋转(180度);
变换:旋转(180度);
}
.翻了{
-webkit变换:旋转(180度);
-莫兹变换:旋转(180度);
-o变换:旋转(180度);
变换:旋转(180度);
}

工作得很好!非常感谢。