我在Firefox / Chrome浏览器中使用jquery / javascript / Ext JS5模拟单击此按钮时有一个按钮。这个按钮触发了它的事件,但是当在IE11中做同样的事情时,事件不会触发?任何CLUE?
以下是点击按钮的方法:
// jquery
$('.buttonId').click(); // works
// javascript
document.getElementById('buttonId').click(); // works
// ExtJS 5
var ok = Ext.ComponentQuery.query('button[itemId=buttonId]')[0];
ok.fireEvent('click', ok); // works
但不适用于IE11
答案 0 :(得分:3)
我会用:
Boolean MkDir(String directoryName)
而不是fireEvent,当然你需要添加一些逻辑来检测你所在的浏览器,这样如果IE< v11然后你可以继续使用fireEvent()。
请参阅Microsoft的有关fireEvent弃用的建议,并建议使用dispatchEvent()进行替换:
https://msdn.microsoft.com/en-us/library/ff986080(v=vs.85).aspx
答案 1 :(得分:1)
这是一个错误。使用此覆盖,它应该工作!
示例小提琴:https://fiddle.sencha.com/#fiddle/ls4
Ext.define('EXTJS-13775', {
override: 'Ext.dom.Element'
}, function(Element) {
var eventMap = Element.prototype.eventMap;
eventMap.click = 'click';
eventMap.mousedown = 'mousedown';
eventMap.mouseup = 'mouseup';
eventMap.mousemove = 'mousemove';
eventMap.dblclick = 'dblclick';
eventMap.mouseleave = 'mouseleave';
eventMap.mouseenter = 'mouseenter';
});
答案 2 :(得分:0)
这适用于所有浏览器。假设我有一个名为(myDropDown)的选择输入
if ("createEvent" in document) {
var evt = document.createEvent("HTMLEvents");
evt.initEvent("change", false, true);
myDropDown.dispatchEvent(evt);
}
else
myDropDown.fireEvent("onchange");
另外,您可以参考fireEvent in IE