2015-05-08 5 views
-1

У меня есть несколько событий, созданных уже с многочисленными шагами. Например:Событие триггера после завершения триггера

$("#CourseID").change будет автоматически собирать информацию о курсе. Он также создает серию флажков для каждого отверстия на курсе. Затем он проверяет каждое поле по умолчанию.

У меня также есть функция $("#ClearAll").click, связанная с нажатием кнопки. Это очистит все флажки.

теперь у меня третий случай $("#SetDate").change, что мне нужно позвонить как из вышеперечисленного:

$("#CourseID").trigger('click') 
$("#ClearAll").trigger('click') 

, потому что после того, как это произойдет, мне нужно пройти через множество отверстий и имеют каждый один чек.

Моя проблема в том, что она работает $("#ClearAll").trigger('click') до $("#CourseID").trigger('click') завершение. Таким образом, флажки не завершаются.

Любое понимание будет оценено по достоинству. Я довольно новичок в jQuery, поэтому, пожалуйста, объясните подробно.

+0

Основываясь на вашем описании, этого не должно произойти. Однако, не имея возможности взглянуть на фактический код и не имея представления о том, что вы на самом деле делаете, очень сложно дать осмысленный ответ. – Jon

+0

сделать опцию на $ ("# CourseID"). Изменить, чтобы принять функцию _then_, которая, если она передана, вызывается снизу. затем передайте $ ("# CourseID"). измените на новый обработчик из упомянутого третьего обработчика. – dandavis

ответ

0

Вы можете использовать обещания или отложить. Они используются в такой ситуации, когда вам нужна одна функция для вызова перед другой. deferred.promise - хорошее место для начала.

0

Я нашел проблему. Событие с переменным $ ("# CourseID") имеет аякс-вызов. Используя $(document).ajaxComplete(function() { $("#ClearAll").trigger('click'); } Затем он ждал завершения функции CourseID, и флажки будут очищены.

Jon - извините, я не опубликовал код, но без 1500 строк кода это не имело бы смысла.