Ho un div in una pagina che mostra alcune informazioni su una particolare categoria (Immagine, Nome ecc.).Previene l'attivazione dell'evento sfocatura se uno dei suoi figli riceve lo stato attivo
Quando faccio clic sull'immagine di modifica, la categoria viene inserita in modalità di modifica che consente di aggiornare il nome. Come puoi vedere dall'immagine sottostante, mostra che "Soup" è attualmente in modalità di modifica, gli altri sono in modalità di visualizzazione normale. Tutto funziona come previsto con i pulsanti Annulla/Salva che fanno tutto bene. (Ho provato ad aggiungere un'immagine ma non me lo permetteva, ho bisogno di più amore)
Tuttavia una volta in modalità di modifica se faccio clic in qualsiasi altro punto della pagina (al di fuori del div) il risultato previsto sarebbe che la zuppa categoria tornerebbe alla modalità di visualizzazione. In caso di attivazione di un evento di qualche tipo, questo dovrebbe anche consentirmi di chiedere se volevano salvare le modifiche.
Quindi quello che ho deciso di fare è creare un evento di sfocatura sul div genitore "zuppe". Funziona come previsto se faccio clic in qualsiasi punto della pagina, tuttavia se faccio clic sull'elemento interno di div, viene generato anche l'evento di sfocatura dei genitori, quindi la categoria torna alla modalità di visualizzazione.
Quindi, c'è un modo per impedire al genitore di attivare l'evento sfocatura se uno dei suoi figli riceve lo stato attivo?
<div tabindex="-1" onblur="alert('outer')">
<input type="text" value="Soup" />
</div>
ho appena scritto il codice senza un compilatore quindi non so se funziona anche, ma con che si spera si ottiene l'idea.
Sto utilizzando Knockout.js per aggiornare la GUI al volo ma non dovrebbe influire su questa risposta non avrei pensato.
[questione connessa] (http://stackoverflow.com/questions/121499/when-onblur-occurs-how-can-i-find -out-which-element-focus-went-to) – jbabey