2
我想模拟用鼠标点击给定类的所有元素(“x-grid3-col-value”)。由于函数“fireEvent”仅适用于ExtJS组件,因此我没有设法使用ExtJS组件。我怎么办?如何在给定类的所有HTML元素上使用ExtJS触发事件
我想模拟用鼠标点击给定类的所有元素(“x-grid3-col-value”)。由于函数“fireEvent”仅适用于ExtJS组件,因此我没有设法使用ExtJS组件。我怎么办?如何在给定类的所有HTML元素上使用ExtJS触发事件
我已经使用这个片段中,这是相当难看,但作品。
function getElementsByClassName(classname, node) {
if (!node) {
node = document.getElementsByTagName('body')[0];
}
var a = [], re = new RegExp('\\b' + classname + '\\b');
els = node.getElementsByTagName('*');
for (var i = 0, j = els.length; i < j; i++) {
if (re.test(els[i].className)) {
a.push(els[i]);
}
}
return a;
}
HTMLElement.prototype.click = function() {
var evt = this.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1,
0, 0, 0, 0, false, false, false, false, 0, null);
this.dispatchEvent(evt);
}
var elts = getElementsByClassName("x-grid3-col-value", window.innerHTML);
var i = 0;
while (i < elts.length) {
var elt = elts[i];
elt.click();
i++;
}
您将得到所有与该类项目是这样的:
var items = Ext.query('.x-grid3-col-value');
它会给你所有项目的数组。然后,你可以通过每个项目去,并把处理程序,在每个项目:
Ext.each(items, function (item) {
item = Ext.get(item);
item.on('click', function() {
//'click' or 'dblclick' or 'mouseover'
//console.log(item);
//Do whatever you want
}, this);
}, this);
为了节省不必使用每个你可以使用: – 2011-05-25 14:23:14
'Ext.select每个(函数(项目){...});'(( 'X-GRID3-COL-价值。')。那么它仍然使用'每个',但它至少可以链接它) – 2011-05-25 14:35:30