Проблемы с JQuery Mobile Caching, onClick не запускается, пока страница не будет перезагружена - PullRequest
0 голосов
/ 02 сентября 2011

Хорошо, позвольте мне сначала сказать Я предполагаю, что это связано с кэшированием. но я не уверен на 100%

Я работаю на мобильном сайте, который вы можете просмотреть здесь

Проблема - выход из системы, если быть точным, нажмите кнопку «Выйти».

Если пользователь войдет в систему, перейдет на ЛЮБУЮ страницу на сайте, а затем попытается нажать «Выйти» (см. Функцию ниже), он ничего не получит. Нет сообщений, нет перемещенных, и если я поместил предупреждение в функцию, она не запускается. ничего такого. ЕСЛИ пользователь не перезагрузит страницу и не попытается выйти из системы.

function submitLogout(){
    $.post("../server/log.php", { uaction: "logout" },function(data){
        window.location = "/index.php";
    }); 
}

Шаги для воспроизведения:

  1. Посетите этот сайт
  2. Нажмите Логин
  3. Войти используя имя пользователя foo , пароль bar
  4. Перейдите к любой из предоставленных ссылок.
  5. Нажмите Выйти

Теперь, если вы хотите увидеть вызов функции, как ожидалось, просто перезагрузите страницу и нажмите «Выйти».

Или, на шаге 4, вместо того, чтобы уйти, нажмите «Выйти»

** Чтобы уточнить снова ** Функция submitLogout никогда не запускается; Если я изменю функцию на

function submitLogout(){
    alert("wtf");
    $.post("../server/log.php", { uaction: "logout" },function(data){
        window.location = "/index.php";
    }); 
}

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

1 Ответ

1 голос
/ 03 сентября 2011

Вы используете относительную ссылку на ваш log.php с: "../server/log.php"

Вы можете полагаться на относительные пути, но всегда думать о том, что будет ссылочным.В данном случае это местоположение текущего URL-адреса на стороне клиента, а не путь к файлу JS.

В вашем случае решение будет состоять в замене части .. на /bin, в которой находится ваша конечная точка.

Вот полное исправление:

function submitLogout() {
  alert('submitLogout is triggered');
  $.post("/bin/server/log.php", { uaction: "logout" },function(data){
    window.location = "/index.php";
  }); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...