質問: タイトルの通り、「click」と「blur」イベントが同時に発生した時、blurが優先的に呼び出されますが、「click」の処理を先に行いたいです。 以下は処理の確認サンプルです。 ``` サンプル ``` フォームに入力したヒラガナのカタカナ候補を下に表示させ、クリックしたらそのカタカナがフォームに代入されるといったサンプルです。 (実際に書いているコードとは異なりますが、やりたいことは同じです) ![サンプル画像](https://teratail.storage.googleapis.com/uploads/contributed_images/a33e468138c688427e36361f90191b77.jpeg) このhtmlをコピペした頂くと分かりやすいのですが、実際にカタカナをクリックすると、代入の前にblurの処理が先に走ってしまい、代入することができません。 対応策として、 ``` $('#kanahenkan').on('blur', function(){ setTimeout(function(){ $('.kana').text(''); }, 200); }); ``` と、処理を遅らせることで何とか理想の動きが出来ましたが、非常に気持ち悪く、どの環境でも実行できるか怪しいので、できればこういった書き方は使いたくないです。(100では無理でした) こういったケースで、clickイベントを先に行うにはどのようにすべきでしょうか? どなたかご教示お願いいたします。
回答: clickではなく、mousedownではだめですか? ``` $('.kana').on('mousedown', function(){ $('#kanahenkan').val($(this).text()); }); ```