jQuery: продолжение пользовательского события клика при успешном входе в ajax - PullRequest
0 голосов
/ 30 мая 2011

У меня есть набор ссылок (добавить в список желаний) с событием клика. Событие щелчка проверяет, вошел ли пользователь в систему (запрос ajax) и, в зависимости от результата, щелчок продолжается. В случае, если пользователь не вошел в систему, у меня есть универсальное модальное диалоговое окно jQuery UI, которое пользователь может использовать для входа.

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

есть. НАЖМИТЕ, ДОБАВИТЬ В СПИСОК -> ВОЙТИ?

  • ДА -> ПРОДОЛЖИТЬ ЩЕЛЧОК (добавить в список желаний)
  • НЕТ -> ПОКАЗАТЬ ДИАЛОГ ВОЙТИ -> ПОЛЬЗОВАТЕЛЬ ПРЕДСТАВЛЯЕТ ПОЛНОМОЧИЯ -> ВОЙТИ?

  • ДА => ПРОДОЛЖИТЬ НАЖМИТЕ НА ССЫЛКУ (добавить в список пожеланий)

  • НЕТ => ПОКАЗАТЬ ОШИБКУ ВХОДА

Конечно, я не хочу выполнять какие-либо постбэки, все через ajax и jquery.

Спасибо

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Вы можете передать URL действия click модалу входа и перенаправить после успешного входа. В качестве альтернативы, если вы настроили его для входа в систему через AJAX, вы можете сохранить цель события click и затем вызвать событие click после успешного входа в систему.

Примерно так:

var is_logged_in = false;

$('a.add_to_wishlist').click(function(e) {
  if(is_logged_in) {
    //do stuff
  } else {
    show_modal(e.target); //pass the event target to the modal
  }
});

function show_modal(trigger) {
  //do stuff
  is_logged_in = true;

  $(trigger).trigger('click');
}

Надеюсь, это поможет.

0 голосов
/ 30 мая 2011

Если вы контролируете свой код на стороне сервера, вам следует поместить аутентификацию + сохранить в список желаний в том же запросе.

  1. Клики пользователей Добавить в список желаний
  2. Ajax-запрос на добавление страницы в список пожеланий отправляется на сервер.
  3. Проверка сервера, чтобы убедиться, что пользователь вошел в систему.
    1. Если пользователь вошел в систему : сохранить элемент в списке пожеланий и вернуть успешный ответ.
    2. Если пользователь не вошел в систему : вернуть неудачный ответ.
    3. Обратный вызов ajax-ответа должен обновлять пользовательский интерфейс на основе ответа.

Если вы не контролируете свой код сервера, вам придетсясделайте два ajax-запроса, если запрос аутентификации успешен.

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