背景
JavaScriptで要素をクリックするにはElement.click()
を利用するが、ダブルクリックを実現するには少し工夫が必要となる。Element.click()
では単一クリックのみしか発火せず、ダブルクリックを実行するdblClick()
のようなメソッドは存在しない。
JavaScriptで要素をクリックするにはElement.click()
を利用するが、ダブルクリックを実現するには少し工夫が必要となる。Element.click()
では単一クリックのみしか発火せず、ダブルクリックを実行するdblClick()
のようなメソッドは存在しない。
JavaScriptで要素に対してダブルクリックをシミュレートするには、dispatchEvent
メソッドを使って dblclick
イベントを発火させる必要がある。
以下がダブルクリックを発火させるためのコード例である。
const dblClickEvent = new MouseEvent('dblclick', {
bubbles: true,
cancelable: true,
view: window,
});
element.dispatchEvent(dblClickEvent);
MouseEvent
でdblclick
イベントを生成するnew MouseEvent()
を使って、dblclick
イベントを生成する。
const dblClickEvent = new MouseEvent('dblclick', {
bubbles: true,
cancelable: true,
view: window,
});
dblclick
, mousedown
, mouseenter
, mouseleave
, mousemove
, mouseout
, mouseover
, mouseup
bubbles
true
cancelable
true
view
null
なため、window
を指定する。dispatchEvent
でイベントを発火する生成した dblclick
イベントを対象の要素に対して dispatchEvent
を使って発火させる。
element.dispatchEvent(dblClickEvent);
これでユーザーが実際にダブルクリックした場合と同様のイベントが発生する。