Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2018, 12:05
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

Эмулировать событие change
Добрый день, можно из JS эмулировтаь событие change ?
Есть 20+ checkbox, которые активируют/деактивируют, соответственный input, это сделал примерно так
Запихал все всю обработку их в один объект, и потом в цикле устанавливаю на отслеживание событий.
"id_AF_box_0": {
			Type:	'change',
			action: function(element, data, index){change_AF("id_AF_box_0","id_AF_0")}
	},
	//--------------------------------------------------------------------------	
	"id_AF_box_1": {
			Type:	'change',
			action: function(element, data, index){change_AF("id_AF_box_1","id_AF_1")}
	},


Но тут вышла не большая загвоздка, эти все checkbox принимаются по JSON, и после принятия его,и выставление checked, но естественно input не активируются по тому что события change не было.

1) Так что как указать, что после принятия json , событие change у нужных checkbox было ?

2) как сделать все таки правильно ? (вызывать 20+ функций change_AF("id_AF_box_0","id_AF_0") не очень охото )
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2018, 12:09
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

document.querySelector('.el').dispatchEvent(new Event("change"));
Ответить с цитированием
  #3 (permalink)  
Старый 09.06.2018, 11:23
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

В Exploere это не работает ?
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2018, 11:27
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от pokk
В Exploere это не работает ?
зависит от версии

https://learn.javascript.ru/dispatch-events
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2018, 11:43
Кандидат Javascript-наук
Отправить личное сообщение для pokk Посмотреть профиль Найти все сообщения от pokk
 
Регистрация: 30.01.2014
Сообщений: 145

// старый стандарт
var event = document.createEvent("Event");
event.initEvent("change", true, true);

куда Id передавать ?
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2018, 11:48
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

// Create the event.
var event = document.createEvent('Event');

// Define that the event name is 'build'.
event.initEvent('build', true, true);

// Listen for the event.
elem.addEventListener('build', function (e) {
  // e.target matches elem
}, false);

// target can be any Element or other EventTarget.
elem.dispatchEvent(event);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает событие change на поле input rybachok91 jQuery 28 09.09.2017 07:29
change событие после появления PHP Useless Элементы интерфейса 6 31.07.2017 11:38
Событие change на select velesdark jQuery 2 10.11.2015 01:26
событие change Shaci Общие вопросы Javascript 3 20.02.2012 22:31
Событие Change exvion jQuery 3 06.05.2010 12:11