要素がクリックされると、指定したdiv要素に追加要素が追加されます。それが来た正確な位置。私の現在のコードはそれを持っていないので、私が持っているjQueryはa)回避策ですが、もっと重要なのはb)うまくいきません。私は間違って何をしていますか?ガイダンスを気に入ってください。要素がクリックされてdivに追加された場合、再度クリックしてdivから削除し、正確な位置に戻します。
$('.choices').on('click', function() {
var $this = $(this);
if (($this.attr('id') == '#translateBoxCover')) {
$this.remove().appendTo('#choicesWrapper');
} else {
$this.appendTo("#translateBoxCover");
}
});
#translateBoxWrapper {
position: relative;
float: left;
width: 100%;
margin: 50px auto 0 auto;
text-align: center;
}
#translateBox {
width: 70%;
height: 175px;
border: 5px dashed white;
text-align: center;
margin: auto;
vertical-align: middle;
z-index: 0;
overflow: hidden;
}
.translateBoxCover {
position: relative;
width: 99%;
height: 99%;
margin: 1% auto;
}
#choices {
position: relative;
float: left;
width: 100%;
margin: 50px auto 0 auto;
}
#choicesWrapper {
width: 80%;
margin: 0 auto;
}
.choices {
position: relative;
float: left;
background: #FFFFFF;
width: 100px;
height: 50px;
margin-left: 7px;
margin-top: 5px;
text-align: center;
padding-top: 25px;
box-shadow: 0 4px 8px 0 rgba(88, 88, 88, 0.50);
border-radius: 2%;
font-size: 22px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='translateBoxWrapper'>
<div id='translateBox'>
<div id='translateBoxCover'> </div>
</div>
</div>
<div id='choices'>
<div id='choicesWrapper'>
<div class='choices'>很</div>
<div class='choices'>中国</div>
<div class='choices'>美国</div>
<div class='choices'>爱</div>
<div class='choices'>喜欢</div>
<div class='choices'>我</div>
<div class='choices'>很</div>
<div class='choices'>很</div>
<div class='choices'>他</div>
<div class='choices'>川普</div>
<div class='choices'>厕所</div>
<div class='choices'>想</div>
<div class='choices'>你</div>
</div>
</div>
'$ this.attr( 'ID')==「#translateBoxCover''は真ではありません。あなたは '$ this.parent()。attr( 'id')'を意味しましたか? – Barmar
@Barmarそれは 'id' RHSがセレクタとして解釈されたように見えます。 – frattaro