2014-09-13 13 views
1

Когда я пытаюсь перенаправить страницу после нажатия ссылки, функции не работают, которые помещаются в событие click. Потому что, когда я нажимаю, страница немедленно перенаправляется без ожидания выполнения задач. Мои коды здесь:Страница перенаправления не работает при событии click в jQuery

var site = 'http://www.sitename.com';  
$(document).ready(function() { 
     $('#messages').on('click', '.read', function() { 

      $.cookie("show_messages", "false", { expires: 120, path: '/' }); 

      $('body').fadeOut(1000, function() { 
       window.location.href = site + "/home-page"; 
      }); 
      return false; 
     }); 
    }); 

Я хочу установить куки чем переадресовать страницу, но мне не удалось его. Не могли бы вы помочь мне? С наилучшими пожеланиями ...

+0

Показанный код должен установить cookie задолго до перенаправления. Похоже, что у вас есть другие ошибки, которые бросают и блокируют ваш код. Проверьте консоль. Определяется ли 'site'? – charlietfl

+0

@charlietfl - стоимость сайта осталась выше. –

+0

Итак, ошибок в консоли нет? Существуют ли '# messages' на загрузке страницы? Является ли 'read' правильным классом? Нет ничего плохого в показанном коде, поэтому проблема в другом месте – charlietfl

ответ

0

Кажется, что в вашей функции щелчка есть проблема, и из-за этого он никогда не попадает в оператор return false;. Я попытался воспроизвести ваш код в jsFiddle, и для меня он разбивается на $.cookie, вы уверены, что вы включили плагин, поддерживающий этот метод? Это не часть jQuery.

Чтобы избежать таких проблем, как это, отменить событие первого и затем перейти к коду:

$(document).ready(function() { 
    $('#messages').on('click', '.read', function (event) { 
     event.preventDefault(); 

     $.cookie("show_messages", "false", { expires: 120, path: '/' }); 

     $('body').fadeOut(1000, function() { 
      window.location.href = site + "/home-page"; 
     }); 
    }); 
}); 

С event.preventDefault() предотвратить событие щелчка без return ничего.

+0

Я использую плагин Cookie (https://github.com/carhartl/jquery-cookie). Но когда я получаю window.location.href в тег комментария, cookie устанавливается. –

+0

Являются ли 'event.preventDefault()' и 'return false' теми же вещами? Оба они не решали проблему. –

Смежные вопросы