特定のカテゴリ(画像、名前など)に関する情報を表示するdivがページにあります。
編集画像をクリックすると、カテゴリが編集モードになり、名前を更新できるようになります。下の画像からわかるように、「スープ」は現在編集モードであり、他は通常の表示モードです。これはすべて、キャンセル/保存ボタンがすべて正しく機能することで期待どおりに機能します。(画像を追加しようとしましたが、許可されませんでした。もっと愛が必要です)
ただし、編集モードでページの他の場所(divの外側)をクリックすると、予想される結果として、スープカテゴリが表示モードに戻ります。ある種のイベントが発生すると、変更を保存するかどうかを尋ねることもできます。
そこで、私がやろうと決めたのは、「スープ」の親divでblurイベントを作成することです。これは、ページの任意の場所をクリックすると期待どおりに機能しますが、divの内側の要素をクリックすると、親のぼかしイベントが発生し、カテゴリが表示モードに戻ります。
それで、子のいずれかがフォーカスを受け取った場合に、親divがblurイベントを発生させないようにする方法はありますか?
<div tabindex="-1" onblur="alert('outer')">
<input type="text" value="Soup" />
</div>
私はコンパイラなしでコードを書いたので、それが機能するかどうかはわかりませんが、うまくいけば、あなたはアイデアを得ることができます。
私はKnockout.jsを使用してGUIをその場で更新していますが、それは私が考えていなかったこの答えに影響を与えるべきではありません。