コードを介して<input>
、またはマウス クリックの結果としてフォーカスを設定できる要素があります。
ユーザーが入力をクリックすると、click
イベント ハンドラーが起動します。要素が他の方法 (コードなど) を介してフォーカスを受け取る場合は、click
イベントを手動でトリガーして、ハンドラーも起動するようにします。
私はこれを行うことができます:
$elem = $('input');
$elem
.on('focus', function() { $(this).trigger('click') })
.on('click', function() { alert('Clicked!') });
ただし、これによりclick
ハンドラーが 2 回起動されます。イベントのために 1 回、click
イベントのために 1 回focus
。
クリック イベントの結果としてフォーカスが受信されなかっclick
た場合にのみ、ハンドラーを選択的にトリガーする方法はありますか?
アップデート
これは私の問題の非常に単純化されたバージョンであるため、両方のハンドラーをfocus
イベントにバインドするなどのことはできません。2 つのサードパーティのコードをマージしようとしています。