У меня есть динамическая форма с элементами, загружаемыми и выгружаемыми в разных точках. Элементы формы также обновляют значения других элементов «на лету». Чтобы справиться с этим, у меня есть событие изменения, связанное со всех select
и input
элементов с использованием:Пожар одного события «события»
jQuery('#myelement').on('change', 'select,input', function(e){
// ... do things after any form element changes value
// Fire myFunction() only once - preferably after the final 'change' event happens.
myFunction();
});
я теперь нужен обратный вызов, чтобы стрелять после запуска всех событий изменения. Размещение любого объекта внутри связанного события будет вызвано после изменения значения элемента. Вместо этого я хочу только вызвать мой обратный вызов. Как я могу это сделать?
---- Редактировать ----
Я предполагаю, что я не ясно, о чем я спрашиваю.
У меня есть элемент, назовем его #myelement
(будь то форма или нет, не имеет значения). У меня есть код, который запускается, когда страница готова, которая связывает некоторые события изменения с дочерними объектами #myelement
, как показано в приведенном выше коде. Я делаю это, потому что у меня динамически загружаются компоненты, а простой ('select').on('change', function() ...
не привязан к новым элементам формы.
Когда элемент формы изменяется, есть дополнительные пользовательские события, которые будут срабатывать для каждого из них. Некоторые из них следят за выстрелом (#another-element).trigger('change')
. Количество событий изменения, которые срабатывают после изменения значения одного элемента, может быть равно нулю или может быть десять. Когда все сказано и сделано, мне нужно место, где я могу вызвать один метод, который будет срабатывать один раз после того, как произойдут все эти события изменений.
В следующий раз, когда значение элемента изменится, я захочу запустить его снова, один раз, после всех последующих событий изменения.
Я не могу быть более ясным, чем это. Я предполагаю, что это будет другой способ формулировки, как я могу определить количество событий изменений, которые будут возникать в этом случае?
Глоссарий
- Final Change Event - окончательное событие изменения в очереди событий изменения. Если вы скажете
jQuery('select').on('change', function(){ ... })
, окончательным событием изменения будет событие, вызванное последнимselect
элементом в очереди.
Что именно вы подразумеваете под «после запуска триггера изменений»? Вы ищете что-то вроде метода '' .one() ') (http://api.jquery.com/one/)? – undefined
Есть ли точная точка, когда все заканчивается? – Huangism
@ Vohuman Мне нужна единственная функция, которая запускает один раз только после того, как произошли все события изменения на странице. – pspahn