У меня возникли трудности с управлением порядком прослушивателей событий при установке флажка.Как выполнить функцию перед изменением флажка?
Например, если у меня есть эти входы:
<input type='checkbox' class='multi' name='product' id='type1'>
<input type='checkbox' class='multi' name='product' id='type2'>
<input type='checkbox' name='product' id='type3'>
Я хочу слушать всякий раз, когда кто-то нажимает на вход с классом = .multi
, а затем выполнять две функции в последовательности.
В частности, я хочу, чтобы function(a)
выполнил, до изменение статуса флажка зарегистрировано (то есть перед выполнением проверки).
Прямо сейчас у меня есть следующая система, которая не работает, потому что при запуске диалогового окна запускается событие change
. Я не могу показаться, чтобы приостановить change
событие ждать до:
$('.multi').on('mousedown', function(a){ // open a jqueryUi dialog box and wait to complete function(a)
//do function(a) ...
$('.dialog').dialog('close');
then, once the dialog is closed...
$(input:checkbox).on('change', function(b){ //do function b only after function a has completed
Что делать, если вы просто вызываете функцию (b) из функции (a) и избавляетесь от обработчика события изменения? т. е. создать именованную функцию, содержащую код, который у вас есть внутри функции (b), а затем вызвать его, как только вы сделали то, что вы сейчас делаете в функции (a). – Chris
@Chris Мне следовало бы уточнить, что ваш вариант не будет работать для меня, поскольку функция (б) делает другие вещи, которые требуют, чтобы она была автономной (насколько я могу разобраться с моими ограничениями опыт кодирования!) – user1837608
Я предполагаю, что вам нужно только изменение, а затем внутри, что вы проверяете, присутствует ли класс .multi, и если вы начинаете делать то, что будет делать function_a, а затем продолжить с остальной функцией function_b , единственное неудобство, о котором я могу думать, это то, что значение флажка, вероятно, будет противоположным, что вы хотите – ajax333221