私はマウスクリック要素に関数を作成しようとしています。関数への引数として(jQueryオブジェクトとして)要素を渡します。
今この質問の範囲外の$(element).click()
を考えることができます、私はそれをこのように作成したい:
function mouseClick() {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
var element = document.getElementById('elementId');
element.dispatchEvent(event);
}
mouseClick();
問題がある:
私はこの関数の引数としての要素を渡すしようとすると、 (jQueryオブジェクトとして)、私はそれを呼び出すとき:
function mouseClick(element) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
//var element = document.getElementById('elementId'); <==== I want to remove this to replace it with the arguments when I call it;
element.dispatchEvent(event);
}
var element = $('#elementId');
mouseClick(element);
私はコンソールエラーを取得します:
Uncaught TypeError: element.dispatchEvent is not a function
しかし、私はそれが動作getElementById
を使用して要素を選択した場合:
var element = $('#elementId'); //<==== this doesn't work;
var element = document.getElementById('elementId'); //<==== this works;
mouseClick(element);
ですが、なぜでしょうか?
jQueryセレクタを動作させるにはどうすればよいですか?
基本的には、IDセレクタ以外の要素をより高度な方法で選択したいので、jQueryは便利で使いやすいと思います。
'dispatchEvent'は、DOMメソッドではなく、jQueryの方法です。 – Barmar
jQueryには、 'dispatchEvent'に似た' trigger'メソッドがあります。 – Barmar
@Barmar jQuery 'trigger'の使い方の例を教えてください。 – user7607751