Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.04.2017, 10:31
Интересующийся
Отправить личное сообщение для dalexra51 Посмотреть профиль Найти все сообщения от dalexra51
 
Регистрация: 10.12.2014
Сообщений: 27

Выполнение действий после checkbox.change
Всем привет!
jQuery( ".filter" ).change(function(event) {
                    if(jQuery(this).is(":checked")) {
						alert(jQuery(this).attr("data-info"));
						// write positive cookie
                    } else { 
						alert(jQuery(this).attr("data-info"));
						// write negative cookie
                    }
					
					alert( dataFromCookie );
					window.location.href = dataFromCookie;
					
                });

Суть проблемы:
При изменении чекбокса его данные + обработка пишутся в куки. Затем, алерт выдает правильные куки, но когда их подставляю в строку для перехода там отображается все неверно.
Вопрос:
Как заставить появлять алерт (и переход) после полного срабатывания события (То есть, сейчас алерт выскакиевает, а после нажатия ОК уже отмечается чекбокс) А надо сделать чтоб сначала отметился чекбокс а затем уже сработал Алерт. Подозреваю что проблема в этом
Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 13.04.2017, 10:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от dalexra51
Как заставить появлять алерт (и переход) после полного срабатывания события (То есть, сейчас алерт выскакиевает, а после нажатия ОК уже отмечается чекбокс) А надо сделать чтоб сначала отметился чекбокс а затем уже сработал Алерт.
Все действия делай в setTimeout()...
Ответить с цитированием
  #3 (permalink)  
Старый 13.04.2017, 10:49
Интересующийся
Отправить личное сообщение для dalexra51 Посмотреть профиль Найти все сообщения от dalexra51
 
Регистрация: 10.12.2014
Сообщений: 27

ставил на 100 мс. Не помогает (то есть проходит задержка а потом отмечается чекбокс)
Ответить с цитированием
  #4 (permalink)  
Старый 13.04.2017, 10:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от dalexra51
ставил на 100 мс. Не помогает
Где полный пример?
Ответить с цитированием
  #5 (permalink)  
Старый 13.04.2017, 10:58
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от dalexra51
ставил на 100 мс. Не помогает
У меня вот все работает...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$(':checkbox').change(function(){
		setTimeout((function(Type){
			return function(){alert(Type);}
		})(this.checked),1)
	});
});
</script>
</head>
<body>
<input type='checkbox' />
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 13.04.2017, 15:33
Интересующийся
Отправить личное сообщение для dalexra51 Посмотреть профиль Найти все сообщения от dalexra51
 
Регистрация: 10.12.2014
Сообщений: 27

Тут оказалось вот в чем загвоздка
есть функция
function pageRedirect ( ff ) {
                var urlTrail = '?';
                if ( ff ) {
                    jQuery.each(ff, function(i, val) {
                        if ( val.length ) { console.log(i + ' === ' + val); urlTrail += i + '=' + val + '&'; console.log(urlTrail); }
                    });                   
                }
                var newAdr = window.location.protocol + '//' + window.location.host + window.location.pathname + urlTrail;
                alert(newAdr);
                //window.location = newAdr;
                //location.assign(newAdr);
            }

на вход идет объект
Object
	brand
		Array[2]
			"cat-chow"
			"catsan"
	species
		Array[1]
			"koty"


а на выходе адрес ?species=koty&brand=cat-chow,catsan&

Так вот когда просто алерт - высвечивает нормально как все должно быть. НО! если раскомментировать редирект - в адрес попадает только последний выбранный чекбокс.(то есть последний элемент который вставился в объект)
Ответить с цитированием
  #7 (permalink)  
Старый 13.04.2017, 16:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,217

Сообщение от dalexra51
Тут оказалось вот в чем загвоздка
Пока "загвоздка" с твоим тестовым примером. Его просто нет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение события после перехода по ссылке cuoresanguinato Events/DOM/Window 2 10.08.2016 21:03
Выполнение скрипта после перехода на другую страницу Lol9999 Events/DOM/Window 6 18.06.2016 14:31
Действие после выполнение Ajax запроса paveltkachev jQuery 23 25.12.2014 06:33
Выполнение после таймера hoax Элементы интерфейса 4 24.11.2013 11:23
Выполнение проверки после наступления события juggalo Events/DOM/Window 6 06.10.2012 01:37