У нас есть один из тех сценариев, где вы предпочитаете, чтобы событие запускалось только при выходе из поля ввода. Это связано с тем, что событие приводит к «обратной передаче», такой как запрос ajax, который, в свою очередь, обновляет поля ввода. Событие изменения начнет бесконечный цикл.событие jQuery change-and-then-blur
С другой стороны, событие размытия запускается каждый раз, когда пользователь покидает поле независимо от того, было ли поле изменено или нет.
То, что я ищу, это своего рода событие «изменить-и-то-размытости», который выстреливает если поле изменилось, но только когда он остается (размытыми).
Я считаю, что jQuery не имеет этого из коробки. Есть ли простой способ расширить его для этого?
Обновление - Я только что попытался воспроизвести проблему бесконечного цикла в простой jsfiddle - безрезультатно.
Применяется нокаут, а также jQuery autoNumeric и пользовательское автоматическое нонизование. Значения обновляются с помощью ko.mapping. Но даже при включении всех этих моих jsfiddle, похоже, отлично работает с простым событием jQuery change
: http://jsfiddle.net/a1tbxnpp/
Я полностью не понял вашу проблему ... Событие изменения вызывается только один раз, если вы хотите быть уверенным, что поля не сфокусированы, просто проверьте, сосредоточено ли оно ... http://api.jquery.com/ focus-selector/Но событие изменения произошло главным образом, когда поле размыто. – Loenix
@ Loenix - вы совершенно правы. Я обновил свой вопрос. Я не могу «отменить» его, поскольку у него уже есть ответ. Я также не могу закрыть его с немедленным эффектом. – chiccodoro
, пожалуйста, проверьте это [http://stackoverflow.com/questions/16710227/intercept-value-changes-within-blur-event](http://stackoverflow.com/questions/16710227/intercept-value-changes-within -blur-event) –