У меня есть <input type="checkbox" />
, к которому привязан обработчик кликов с помощью функции jQuery .click
. Затем он выполняет некоторые вычисления в зависимости от своего состояния:
$(':checkbox').click(function () {
if (this.checked) {
console.log("ACTIVE");
} else {
console.log("INACTIVE");
}
});
Это все хорошо в пользовательском интерфейсе, однако в моих модульных тестах я хочу смоделировать нажатие на этот элемент и убедиться, что выполняется правильный код.
$(testElement).click();
Проблема в том, что обработчик вызывается до действия браузера по умолчанию, поэтому значения this.checked
обращаются в обратном направлении. То есть атрибут checked
не изменяется до тех пор, пока не запустится мой обработчик.
Есть ли способ обойти это? Могу ли я связать другое событие? Есть ли другой способ вызвать щелчки программно?