我试图创建一个函数来鼠标点击元素。传递元素(作为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