Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Срабатывание функции с определенным значением (https://javascript.ru/forum/misc/60664-srabatyvanie-funkcii-s-opredelennym-znacheniem.html)

diga 13.01.2016 14:50

Цитата:

Сообщение от laimas (Сообщение 403579)
Щелчок по тегу А нужного хода, а дальше "сходить назад" начиная от последнего хода по текущий, это не сложно будет сделать.

Но история пишется автоматически, по крайней мере спец. кнопки для этого не видно, а значит и она по идее должна измениться при этом. Я так полагаю, а вы говорите, что сбрасывать/не разрешать играть при этом, не нужно. Если я прав, значит игру уже не возобновить с последнего хода.

вот например, я делаю некоторые ходы, затем вызываю функцию, она у меня как кнопка "new game" (я залил скрипт выше) при это фигуры переходят в исходное положение, НО игра при это не начинается заново а продолжается, и если я сделаю новый ход, то фигуры переместятся как были до этого, я хочу добиться такого же эффекта и при клике на один из ходов в истории. Т.е. это не отмена текущих ходов, а просто просмотр расположения фигур на доске для данных ходов

diga 13.01.2016 15:08

Цитата:

Сообщение от laimas (Сообщение 403579)
Щелчок по тегу А нужного хода, а дальше "сходить назад" начиная от последнего хода по текущий, это не сложно будет сделать.

а как функция будет узнавать по какому именно тегу А мы щелкнули? они же различаются только содержимым, нет идентификатора. Если можно по содержимому, то как такое реализовать?

laimas 13.01.2016 15:27

Ну пощелкал игру... Странная логика. Играем, видим исполненные ходы. Нажимаем кнопку "Новая игра" - история не очищается, фигуры на исходную, но сделать ход можно только игроку, за которым остался очередной ход, причем только фигурой, которой он до этого не ходил, и в результате будет восстановлено на доске состояние предыдущей партии, плюс новый ход. Как-то это не вяжется с новой игрой, скорее это продолжение, зачем при этом фигуры на исходные позиции... не понять.

Кода много, все дополнения скорее вам сделают только платно, если конечно альтруист не возьмется помочь. )

laimas 13.01.2016 15:32

Цитата:

Сообщение от diga
а как функция будет узнавать по какому именно тегу А мы щелкнули?

Обработчик щелчка нужно добавлять, причем я оказался прав, просмотрев запись ходов - ход пишется парами, то есть обоих игроков, и если вернуть состояние игры для одного хода, то не проблема, по какой ссылке А щелкнули, та и отправная точка. Но если подразумевается ход обоих игроков, то пары тегов А (ход каждого игрока в истории) нужно обрамлять, например в тот же SPAN. Иначе без костылей дополнительных не обойтись.

рони 13.01.2016 15:37

новый дистрибьютив
https://github.com/jhlywa/chess.js
новая документация
http://chessboardjs.com/

diga 13.01.2016 15:57

Цитата:

Сообщение от рони (Сообщение 403593)
новый дистрибьютив
https://github.com/jhlywa/chess.js
новая документация
http://chessboardjs.com/

я из сайта документации и скачал..

diga 13.01.2016 16:29

Цитата:

Сообщение от рони (Сообщение 403593)
новый дистрибьютив
https://github.com/jhlywa/chess.js
новая документация
http://chessboardjs.com/

тем не менее мой вопрос остается открытым, как реализовать просмотр истории хода.

рони 13.01.2016 16:38

diga,
врятли кто-то кроме вас будет внимательно читать доку ...

diga 13.01.2016 17:11

Цитата:

Сообщение от рони (Сообщение 403606)
diga,
врятли кто-то кроме вас будет внимательно читать доку ...

сформулирую вопрос по другому, как можно сделать событие клик по одной из гиперссылок, и получить значение id?
сделал обромление тегом и добавил id, таким образом выглядит по лучше:
<span id="pgn">1. <a href="#" id="g3">g3</a> <a href="#" id="e6">e6</a> 2. <a href="#" id="f3">f3</a> <a href="#" id="c6">c6</a> 3. <a href="#" id="h3">h3</a> <a href="#" id="a6">a6</a></span>


т.е. вопрос, как навесить событие таким образом, чтоб было известно куда я кликаю, и мог считать id того куда я кликнул?

laimas 13.01.2016 17:20

Не так, если обрамлять тегом, должно быть так:

<span id="pgn"><span>1. <a>Ход 1 игрока</a> <a>Ход 2 игрока</a></span></span>

тогда

$('#pgn span').click(function() {
    var a = $(this).children();
    a.first().text() - ход первого игрока
    a.last().text() - ход второго игрока
})


Иначе, без обрамления, щелчок по любому тегу А, затем разбираться, например по текстовому узлу (1., 2.) или по четности индекса, чтобы определить тег хода оппонента.


Часовой пояс GMT +3, время: 02:46.