Цитата:
$('#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, время: 23:38. |