Stack Overflow на русском Asked by Vova Shkurletov on November 5, 2021
Пишу шашки и тут такая проблема:
Если ходишь второй шашкой, то происходит какая-то каша.
Код:
$(document).ready(function() {
$('<table></table>').appendTo('body');
var is = false;
for(let i = 0; i < 8; i += 1) {
$('<tr>').appendTo('table');
console.log('create-tR');
is = !is;
for(let j = 0; j < 8; j += 1) {
is = !is;
$('<td>').appendTo('tr:last');
$('<div class="cage" id='+i+j+'></div>').appendTo('td:last');
if(is) {
$('#'+i+j).css('background-color', '#362416');
} else {
$('#'+i+j).css('background-color', '#edd3a2');
}
if(is && (i <= 2 || i >= 5)) { //if hahka
if(i <= 2) {
$('<div id=h'+i+j+' class="hahka bl"></div>').appendTo('#'+i+j);
} else {
$('<div id=h'+i+j+' class="hahka wh"></div>').appendTo('#'+i+j);
}
}
$('</td>').appendTo('tr:last');
$('</tr>').appendTo('table');
}
}
//--↑ place in top is a placing chessboard ↑--//
var plhod = true,
i = 0;
//console.log('create-td');
if(plhod) { //if player walk now
$('.hahka.wh').click(function() {
var pos = parseInt($(this).attr('id').slice(1));
var off = $(this);
//off-elem of hahka
alert(pos);
$('#'+String(pos - 8 - 1)).css('background-color', 'yellow');
$('#'+String(pos - 8 - 3)).css('background-color', 'yellow');
$('.cage').click(function() {
if($(this).css('background-color') == 'rgb(255, 255, 0)') {
console.log($(this).offset());
alert($(this).attr('id'));
$("#"+off.attr('id')).offset($(this).offset());
$('#'+String(pos - 8 - 1)).css('background-color', '#362416');
$('#'+String(pos - 8 - 3)).css('background-color', '#362416');
$(off).attr('id', 'h'+$(this).attr('id')+i);
}
});
});
}
});
div {
width: 70px;
height: 70px;
}
.hahka {
width: 50px;
height: 50px;
border-radius: 50%;
}
div td tr {
margin: 0;
padding: 0;
}
.bl {
background-color: red;
}
.wh {
background-color: white;
}
table {
background-color: black;
}
/* fix snippet */
.as-console-wrapper,
.as-console-wrapper div {
width: auto;
height: auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Сначала норм
И тут норм
Когда переставляешь 2 шашку, то на ее место идёт предыдущая шашка. Что делать?
Спасибо!
Не назначайте обработчики событий внутри других обработчиков событий.
$('.hahka.wh').click(function() {
...
$('.cage').click(function() {
Делая так, Вы (при клике на $('.hahka.wh')
) навешиваете все новые и новые обработчики на $('.cage').click
, которые все выстреливают при клике на $('.cage')
.
Answered by Igor on November 5, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP