Гонка между размытием и кликом - PullRequest
0 голосов
/ 14 августа 2011

У меня есть текстовая область редактирования на моей странице: это плоский div, пока пользователь не перейдет в режим редактирования; затем он становится текстовой областью с кнопками сохранения и отмены. Функция сохранения работает по Ajax, записывая значение в БД.

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

У меня изначально есть событие размытия на текстовой области (которое вызывает сохранение) и событие щелчка на кнопке отмены (которая не выполняется); однако, по крайней мере, в некоторых браузерах событие размытия срабатывает до щелчка, поэтому к моменту отмены оно уже сохраняется.

Я мог бы задержать событие сохранения, но это немного странно, и я думаю, что должен быть другой путь.

Некоторые вещи, которые я пробовал:

* * 1010 установка stopImmediatePropagation для события click (ничего не происходит) идентифицирует «relatedTarget» события размытия (возвращается null) переключение события click на событие mousedown (не работает) захват страницы X и страницы Y события размытия, чтобы увидеть, пересекаются ли они с кнопкой отмены (они возвращаются неопределенными)

Если я не могу найти другой путь, я пойду с задержкой, но я бы предпочел не создавать свой код таким образом. Есть идеи?

...