Добавить/удалить класс после клика И рефреш(в результате пост запроса) блоку кода?
$(document).ready(function() {
if ($('.poisk').click(function()){
$(window).on('load', function() {
$('.all').addClass('box-80');
$('.all-all').removeClass('box-80');
});
});
});
Что-то вроде таких действий хотелось бы реализовать. При клике на поиск отправляется пост запрос и соответственно обновляется страница. В этот момент как можно удалить/добавить классы? Принципиально именно при клике, т . к. при простом обновлении страницы скрипт срабатывает, но такой необходимости у меня нет. Заранее благодарю кто откликнется.
Ответы (1 шт):
В том виде, в котором вы хотите это получить - это невозможно. Когда вы выполняете submit формы, страница вместе со скриптом выгружаются из памяти и скрипт останавливает свою работу. При загрузке страницы будет выполняться новый скрипт, который не в курсе про то, что вы когда-либо что нажимали до этого.
Как вариант решения вашей проблемы могу предложить вам сохранить состояние через localStorage или cookie.
$(document).ready(function() {
$('.poisk').click(function(){
localStorage.setItem('action','search');
});
if(localStorage.getItem('action') == 'search'){
$('.all').addClass('box-80');
$('.all-all').removeClass('box-80');
}
localStorage.setItem('action','');
});
Либо, если не нравится так, можно например, сравнить referrer:
$(document).ready(function() {
if(document.referrer == location.href){
$('.all').addClass('box-80');
$('.all-all').removeClass('box-80');
}
});
Этот вариант не всегда работает и требует дополнительной калибровки.
Для начала я бы выводил:
console.log('referer=',document.referrer);
console.log('href=',location.href);