我有一张3 x 4卡,它是一款记忆游戏。所以为了能够比赛,你需要猜测2场比赛。
.card .back {
display: none;
}
.card {
margin: 8px;
}
.card .front {
background-color: blue;
}
.back,
.front {
color: white;
width: 100px;
height: 150px;
}
.card .back {
background-color: red;
}

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
</div>
&#13;
{{1}}&#13;
根据摘录,如果我点击一张卡片,所有卡片都会翻转,这是错误的。
现在我的问题是,如何通过jquery解决这个问题?
答案 0 :(得分:3)
由于您的选择器(front
和back
),您使用课程.front
和.back
定位了每个元素,这是错误的。
要解决此问题,您需要告诉jQuery您只定位用户刚刚点击的元素中的元素,并为此使用find
函数。这可以确保jQuery仅检查您所定位的元素中的元素,而不是文档中的每个元素。
所以,你在哪里写道:
$('.card').click(function(){
$('.front').toggle();
$('.back').toggle();
});
您需要将其更改为
$('.card').click(function(){
$(this).find('.front').toggle();
$(this).find('.back').toggle();
});
这很简单。
$('.card').click(function() {
$(this).find('.front').toggle();
$(this).find('.back').toggle();
});
.card .back {
display: none;
}
.card {
margin: 8px;
}
.card .front {
background-color: blue;
}
.back,
.front {
color: white;
width: 100px;
height: 150px;
}
.card .back {
background-color: red;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
</div>
答案 1 :(得分:2)
您需要使用 this 仅选择一些具有此class
的元素。试试这个$(this).find(".front").toggle().
答案 2 :(得分:2)
$('.card').click(function(){
$(this).find('.front').toggle();
$(this).find('.back').toggle();
});
就是这样
答案 3 :(得分:1)
使用此:
$('.card').click(function(){
$(this).find('.front').toggle();
$(this).find('.back').toggle();
});
答案 4 :(得分:0)
您使用jQuery选择了所有.front
和所有.back
类,您应该使用它:
$('.card').click(function(){
var $this = $(this);
$this.find('.front').toggle();
$this.find('.back').toggle();
});
答案 5 :(得分:0)
简单 Read Here
$('.front , .back' , this).toggle();
$('.card').click(function(){
$('.front , .back' , this).toggle();
});
&#13;
.card .back{
display:none;
}
.card {
margin:8px;
}
.card .front{
background-color: blue;
}
.back, .front{
color:white;
width:100px;
height:150px;
}
.card .back{
background-color:red;
}
&#13;
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="dog">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
<div class="col-xs-4">
<div class="card" id="cat">
<div class="front">
image here
</div>
<div class="back">
back card
</div>
</div>
</div>
</div>
&#13;
答案 6 :(得分:0)
当你这样做时
$('.card').click(function() {
$('.front').toggle();
$('.back').toggle();
});
您将点击侦听器附加到具有类card
的所有元素。在内部,您可以使用课程front
和back
切换所有元素。您只需切换所点击卡片中的front
和back
即可。 $(this).find(".front").toggle();
就是这么做的。