コードを介して<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 つのサードパーティのコードをマージしようとしています。