0

私は次のコードを持っています:

    <div id="id1">
        <div id="id2">
            <p> some text </p>
        </div>
        <div id="id3">
             <!--some other div elements-->
        </div>
    </div>

#id2contenteditableページ上のいくつかのボタンがクリックされたときです。

私のスクリプトには次のコードがあります。

jQuery("#id1").focousout(focousoutFunction);

問題は、#id2フォーカスを失うと、focousoutFunctionが解雇されることです。focusout実際の要素がフォーカスを失ったときにのみイベントをキャッチし、要素の内部ではキャッチしない方法はありますか?

4

2 に答える 2

0

javascriptに伝播を停止させることができます。

jQuery("#id1 div").focusout(function(event) {
   event.stopPropagation();
});
于 2013-03-13T15:26:56.833 に答える
0

focusoutイベントは、その要素またはその中の要素がフォーカスを失ったときに要素に送信されます。これは、子孫要素へのフォーカスの喪失の検出をサポートするという点でblurイベントとは異なります(つまり、イベントのバブリングをサポートします)。

Jqueryのドキュメント

#id1フォーカスアウトは、フォーカス自体が失われていなくても、内部の要素がフォーカスを失うたびに発生#id1します(ただし、フォーカスイベントをdiv要素に割り当てることができるかどうかはわかりません)。

于 2013-03-13T15:28:28.190 に答える