JQuery Ajax не всегда отправляет запрос на сервер - PullRequest
1 голос
/ 30 января 2011

Итак, у меня есть эта ссылка, которая должна отправлять запрос AJAX каждый раз, когда на него нажимают:

<a href="/application/start_game?human_is_first=true" data-remote="true">Yes</a>

Но это не всегда срабатывает с первой попытки. А иногда это будет работать только после нажатия на другие ссылки AJAX (которые также не отправляют запросы, когда они должны).

Я знаю, что ссылка отправляет запросы, потому что вывод консоли сервера не меняется, когда я щелкаю ссылку. Без ошибок, ничего.

Я использую rails.js и jQuery 1.4.4.

Живое приложение, чтобы показать вам, что происходит: http://ttt -ai.heroku.com /

Ответы [ 4 ]

3 голосов
/ 31 января 2011

Нет ничего плохого в JavaScript на странице;только с вашим плохим CSS.

Вы видите, во всех ваших кнопках "Да" и "Нет", фактический элемент ссылки занимает только крошечное пространство вокруг букв.Ссылка не имеет абсолютно никакого отступа и поэтому ее легко пропустить при нажатии на кнопку.

Поскольку вы создали стиль ": hover" для самого элемента LI, у вас создалось впечатление, что весь элемент реагирует на нажатия,Это не.Только элемент A реагирует на нажатия и обрабатывается rails.js.

1 голос
/ 30 января 2011

Распространенной проблемой является то, что javascript не загружается вовремя или загружается не вовремя (т.е. до того, как dom будет готов). Есть ли ошибки в журнале ошибок JS?

0 голосов
/ 30 января 2011

Наряду с предложениями @ ispum проверить связанные события в firebug / other debugger также проверьте, чтобы обратный вызов ajax:before не отменял ваше событие:

  $("#your_link_id")
    .bind('ajax:before', function() { 
       //if this returns false, remote event is cancelled 
     });

не возвращает false, что отменит удаленное действие

0 голосов
/ 30 января 2011

Я рекомендую вам использовать firebug с firequery (аддоны Firefox). Затем вы можете увидеть связанные события jquery и ajax-запросы, исходящие из браузера. Часто это помогает понять, почему что-то не работает. Проверьте в консоли firebug, что ваш ajax-запрос правильно отправлен, если нет, проверьте, не связано ли событие click для ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...