У меня есть текстовая область редактирования на моей странице: это плоский div, пока пользователь не перейдет в режим редактирования; затем он становится текстовой областью с кнопками сохранения и отмены. Функция сохранения работает по Ajax, записывая значение в БД.
Ожидаемое поведение: пользователь может редактировать текст, щелкать в любом месте за пределами текстовой области и запускать функцию сохранения, если только он не нажимает кнопку отмены, в этом случае он не сохраняется.
У меня изначально есть событие размытия на текстовой области (которое вызывает сохранение) и событие щелчка на кнопке отмены (которая не выполняется); однако, по крайней мере, в некоторых браузерах событие размытия срабатывает до щелчка, поэтому к моменту отмены оно уже сохраняется.
Я мог бы задержать событие сохранения, но это немного странно, и я думаю, что должен быть другой путь.
Некоторые вещи, которые я пробовал:
* * 1010
установка stopImmediatePropagation для события click (ничего не происходит)
идентифицирует «relatedTarget» события размытия (возвращается null)
переключение события click на событие mousedown (не работает)
захват страницы X и страницы Y события размытия, чтобы увидеть, пересекаются ли они с кнопкой отмены (они возвращаются неопределенными)
Если я не могу найти другой путь, я пойду с задержкой, но я бы предпочел не создавать свой код таким образом. Есть идеи?