Как остановить / приостановить выполнение события изменения jquery из другого события onclick? - PullRequest
1 голос
/ 13 июля 2011

У меня есть событие изменения jQuery, которое запускается после изменения текстового поля,
событие срабатывает только тогда, когда текстовое поле теряет фокус.
Если пользователь затем нажимает кнопку отмены, то запускается событие изменения, а затем запускается также нажатие кнопки отмены, но я хочу «убить» событие изменения, и я хочу его из события onclick.
Я знаю, что в jquery у вас есть какой-то контроль над событиями.

<input id="change" type="text" />
<input id="cancel" type="button" value="Cancel" onclick="return cancelEvent(this);" />


$(function () 
{
   $('#change').live('change', function() {
    alert('changed');
   });

});

function cancelEvent(e){
    //kill the change event and continue
    alert('cancel');
    return false;
}

Есть решение, если я убью, затем перепривязываю событие:

$('#changeButton').die('change',..).live('change',...);,

но это должно быть более эффективное решение.

Вот ссылка jsbin , где вы можете поиграть с ней!
Надеюсь, это более понятно.
Любой вклад в вопрос приветствуются

1 Ответ

2 голосов
/ 13 июля 2011

Редактировать # 1

Похоже, я теперь понимаю, что вы хотите, так что игнорируйте мой предыдущий ответ. Вместо этого посмотрите на этот пример . Сохраните значение элемента управления в фокусе. Восстановите значение, если была нажата кнопка отмены, даже после изменения.

Редактировать # 2

Тот же пример с одним меньшим обработчиком событий

...