Цитата:
$('#pgn span').on('click', function(){
var a = $(this).children();
a.first().text();
a.last().text();
console.log(a.first().text());
});
ничего консоль не показывает обромление: <span id="pgn"><span>1. <a href="#">e3</a> <a href="#">c6</a> </span><span>2. <a href="#">b4</a> <a href="#">a6</a></span></span> |
a.last().text(); Это я написал как получить а передавать: board.move(a.first().text(), a.last().text()); если правильно помнится имя функции. Без обрамления типа такого:
var plH = $('#pgn a').click(function() {
var a = $(this), i = plH.index(a) & 1, f = i ? a.prev() : a, s = i ? a : a.next();
board.move(f.text()+' '+s.text())
})
Но как быть, если второй игрок не сделал хода, делать ход по истории или нет, в документации почитать или просто проверить поведение board.move() в этом случае. Ну и к тому же нужно не только этот ход восстановить, но и те что сделаны за ним. Тоже в документации поискать, может это уже решаемо методами, иначе по индексу определять шаг истории и воспроизвести нотацию начиная с этого шага. |
это понятно, но разве то что он получил, не должен был выводить в консоль?
|
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(function() {
$('#pgn span').on('click', function(){
var a = $(this).children();
alert(a.first().text() +' '+ a.last().text());
});
});
</script>
</head>
<body>
<span id="pgn"><span>1. <a href="#">e3</a> <a href="#">c6</a> </span><span>2. <a href="#">b4</a> <a href="#">a6</a></span></span>
</body>
</html>
И не должно быть проблем, если ошибок не допущено. |
Цитата:
|
Цитата:
не мог бы ты залить chess.js? я заменил как ты сказал, но вышло не как у тебя :help: |
diga,
изменения только тут
/* build the list of moves. a move_string looks like: "3. e3 e6" */
while (reversed_history.length > 0) {
var move = reversed_history.pop();
/* if the position started with black to move, start PGN with 1. ... */
if (pgn_move_number === 1 && move.color === 'b') {
move_string = '1. ...';
pgn_move_number++;
} else if (move.color === 'w') {
/* store the previous generated move_string if we have one */
if (move_string.length) {
moves.push(move_string);
}
//move_string = pgn_move_number + '.';
//move_string = '</li><li>' + pgn_move_number + ')';
var dt_move = [make_pretty(move).from + '-' + make_pretty(move).to];
var temp = reversed_history.slice(-1);
if(temp.length) dt_move.push(make_pretty(temp[0]).from + '-' + make_pretty(temp[0]).to);
move_string = '</a>'+pgn_move_number + '.'+'<a href="#" data-move="'+dt_move+'">';
pgn_move_number++;
}
move_string = move_string + ' ' + move_to_san(move);
make_move(move);
}
/* are there any other leftover moves? */
|
ты гений :dance: , почти то, что надо, за исключением того, что желательно отображения хода в любой момент нажатия, не именно с начальной позиции и с учетом всех предыдущих ходов сделанных до хода на которую нажали. Т.е. если нажму на ход который находится где то в середине всех ходов, отображались все хода сделанные до данного, но не отображались которые сделаны после ) :write: |
Цитата:
завести массив где будут хранится все нотации для каждого хода. при нажатии из истории ходов находить какой ход по номеру сделан, т.е. индекс по данному индексу смотреть какая нотация соответствует и вызывать функцию с данной нотацией которая показывает расположение фигур |
| Часовой пояс GMT +3, время: 19:54. |