質問

OnblurとOnSelectイベントに折り返さないようにしようとしています。ユーザーが他の場所をクリックして選択すると、ACを非表示にする必要があります。問題は、ぼかしのイベントがONSelectにも発生していることです。ACの外側をクリックしている場合にのみトリガーされたイベントが見つかりませんでした。

基本的に私が欲しいものは次のような出力です。

外側をクリックします。a:blur

値の選択:val

を選択

しかし私が手に入っているのは:

外側をクリックします。a:blur

選択値:Blur、Val

を選択

選択したACを選択します。

役に立ちましたか?

解決

Blur Eventが何かを選択したときに発射され、それを防ぐことができない可能性がありますが、Blurではタイムアウトを設定します。タイムがタイムアウトした場合は、通常ぼかしにしていることをしてください。

選択イベントで、タイマーをキャンセルします。

いくつかの非常に緩い疑似コード:

var blurTimer = null;

function handleBlur() {
    blurTimer = setTimeout(function() {
        // do what you normally do onblur
    }, 50);
}

function handleSelect() {
    clearTimeout(blurTimer);

    // do what you normaly do on select
}
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top