Tengo un div en una página que muestra información sobre una categoría en particular (Imagen, Nombre, etc.).Evitar disparar el evento desenfoque si alguno de sus hijos recibe foco
Cuando hago clic en la imagen de edición, coloca la categoría en modo de edición, lo que me permite actualizar el nombre. Como puede ver en la imagen a continuación, muestra que "Soup" se encuentra actualmente en modo de edición, los otros están en modo de vista normal. Todo esto funciona como se espera con los botones cancelar/guardar haciendo todo bien. (Traté de agregar una imagen pero no me dejó, necesito más amor)
Sin embargo, una vez en el modo de edición si hago clic en cualquier otro lugar de la página (Fuera del div) el resultado esperado sería que la sopa la categoría volvería al modo de visualización. Después de un evento de disparo de algún tipo, esto también debería permitirme preguntar si querían guardar los cambios.
Entonces, lo que decidí hacer fue crear un evento de desenfoque en el div principal de "sopas". Esto funciona como se esperaba si hago clic en cualquier parte de la página, sin embargo, si hago clic en el elemento interno de div, también provoca que se desencadene el desenfoque de los padres, lo que provoca que la categoría regrese al modo de visualización.
Entonces, ¿hay alguna forma de evitar que el div principal active el desenfoque si alguno de sus hijos recibe el foco?
<div tabindex="-1" onblur="alert('outer')">
<input type="text" value="Soup" />
</div>
acabo de escribieron el código sin un compilador así que no sé si es que aun funciona pero con que se espera que usted consigue la idea.
Estoy usando Knockout.js para actualizar la GUI sobre la marcha, pero eso no debería afectar esta respuesta, no lo hubiera pensado.
[Pregunta relacionada] (http://stackoverflow.com/questions/121499/when-onblur-occurs-how-can-i-find -out-which-element-focus-went-to) – jbabey