在原始 javascript 中触发一个点击事件
Fire a click event in raw javascript
在jQuery中,我可以做如下的事情:
$('#example').click();
原始Javascript中的等价物是什么?我尝试了以下方法:
document.getElementById('example').click();
但这似乎行不通。谢谢!
我在我的框架中使用它:
function fireEvent() {
var eventType = null, i, j, k, l, event,
einstellungen = {
'pointerX': 0,
'pointerY': 0,
'button': 0,
'ctrlKey': false,
'altKey': false,
'shiftKey': false,
'metaKey': false,
'bubbles': true,
'cancelable': true
}, moeglicheEvents = [
['HTMLEvents', ['load', 'unload', 'abort', 'error', 'select', 'change', 'submit', 'reset', 'focus', 'blur', 'resize', 'scroll']],
['MouseEvents', ['click', 'dblclick', 'mousedown', 'mouseup', 'mouseover', 'mousemove', 'mouseout']]
];
for(i=0,j=moeglicheEvents.length;i<j;++i) {
for(k=0,l=moeglicheEvents[i][1].length;k<l;++k) {
if(arguments[1] === moeglicheEvents[i][1][k]) {
eventType = moeglicheEvents[i][0]; i = j; k = l;
}
}
}
if(arguments.length > 2) {
if((typeof arguments[2]) === 'object') {
change(einstellungen, arguments[2]);
}
}
if(eventType === null) {
throw new SyntaxError('Event type "' + arguments[1] + '" is not implemented!');
}
if(document.createEvent) {
event = document.createEvent(eventType);
if(eventType === 'HTMLEvents') {
event.initEvent(arguments[1], einstellungen.bubbles, einstellungen.cancalable);
} else {
event.initMouseEvent(arguments[1], einstellungen.bubbles, einstellungen.cancelable, document.defaultView,
einstellungen.button, einstellungen.pointerX, einstellungen.pointerY, einstellungen.pointerX, einstellungen.pointerY,
einstellungen.ctrlKey, einstellungen.altKey, einstellungen.shiftKey, einstellungen.metaKey, einstellungen.button, arguments[0]);
}
arguments[0].dispatchEvent(event);
} else {
einstellungen.clientX = einstellungen.pointerX;
einstellungen.clientY = einstellungen.pointerY;
event = document.createEventObject();
event = extend(event, einstellungen);
arguments[0].fireEvent('on' + arguments[1], event);
}
}
参数 1 是元素,第二个参数是事件,第三个(可选)选项。
对不起,我忘了重写一些部分:
_.isObject()
到(typeof arguments[2]) == 'object'
和_.change
更改,需要此功能:
function change() {
var name;
for(name in arguments[1]) {
if((typeof arguments[1][name]) === 'object') {
if((typeof arguments[0][name]) === 'undefined') {
arguments[0][name] = {};
}
change(arguments[0][name], arguments[1][name]);
} else {
arguments[0][name] = arguments[1][name];
}
}
return arguments[0];
};
编辑:
在您的情况下,这将是fireEvent(document.getElementById('example'), 'click');
相关文章:
- React应用程序:道具在下一个事件后更新
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 全局屏幕span onclick触发一个事件javascript
- 在一个“事件”之后触发一个事件;喜欢“;
- 在离子2中,有任何方法可以将涡旋动量作为一个事件来检测
- 完整日历在多个资源上添加一个事件
- TinyMCE 将另一个事件添加到粗体和斜体按钮
- jQuery触发另一个事件中的事件
- 试图使一个事件依赖于另一个事件,并使用jquery自定义事件传递数据
- 存储一个事件处理程序中的变量以供另一个事件处理器使用
- 当表单验证失败时,我将如何最好地处理下一个事件
- 正在创建一个事件以更改鼠标悬停时的图片
- 当一个单元格被编辑时,是否有一个事件触发,但值没有'不要改变
- JavaScript一次性在多个元素上注册一个事件类型
- 如何在点击时发生另一个事件后使用localscroll
- Vanilla Js:在一个事件中开始一段时间的循环,然后用第二个事件打破它?('mouseover'启
- 取消除最后一个事件之外的所有事件,
- 鼠标滚轮按压-描述了一个事件的名称,以及如何使用jQuery侦听它
- Javascript开始处理下一个事件,然后第一次完成
- 在Jquery中将标志从一个事件传递到另一个事件