前提・実現したいこと
とある要素をダブルクリックしたときに発生するイベントがあり、
それをtrigger(dblclick)を利用して発生させたい
(本来は特定キーの押下時に発生させたいのですが、ここではあまり関係がなさそうなのでソースコード等では省略しています)
発生している問題・試したこと
マウスでダブルクリック操作した場合は
きちんとイベントが発生することは確認できているのですが、
「.trigger("dblclick")」で同じイベントを発生させようとした場合は
何も起こりません。
ソースコードにも記載していますが、
dblclickの代わりにclickで試した場合は問題なく動作しました。
また、「.click()」「.dblclick()」の書き方でも同様でした。
該当のソースコード
HTMLのbody内を抜粋しています。
また、このコードの場合、
ダブルクリック時にクリックイベントも併せて発生してしまいますが、
問題に関係なさそうであればスルーしてやってください。
html
1<div id="clickarea">ここをクリックorダブルクリック</div> 2 3<!-- jQuery読み込み --> 4<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 5 6<script> 7// クリック/ダブルクリックのイベント設定 8window['clickarea'] = document.getElementById("clickarea"); 9clickarea.addEventListener("click", function(){ 10 console.log("クリックされました"); 11}); 12clickarea.addEventListener("dblclick", function(){ 13 console.log("ダブルクリックされました"); 14}); 15 16// クリック/ダブルクリックのイベントを発生させる 17$("#clickarea").trigger("click"); // 動作する 18$("#clickarea").trigger("dblclick"); // 動作しない 19</script>
解決が難しい場合は少し作りを変えることも検討していますが
(イベントの内容を関数化しておいて、各処理から呼び出すなど)
開発上の諸々の都合があり、できればこの方法で解決したいと考えています。
何かご存知の方、よろしくお願いいたします。
追記
取り急ぎ、ご回答ありがとうございます。さらに検証してみます。
「ダブルクリックされました」表示で正常に動いた判定でOKです。
こちらのOSはWindows10で、確認したのは以下ブラウザです。
- GoogleChrome 68.0
- Firefox 61.0
解決しました
みなさま、ありがとうございました。
clickとdblclickで使い方が全く同じというわけではなかったのですね…大変勉強になりました。
今回記載していたサンプルレベルのコードではroot_jpさんの書き方ですぐに解決できました。
(実際に実装しようとしているところはまだ解決していないのですが、
どうやら更に別の問題が絡んでいて完全に別件になってしまいそうなので、
今回質問させていただいた内容としてはcloseさせていただきます)
本当に助かりました。ありがとうございます。

回答3件
あなたの回答
tips
プレビュー