如何在Ext Js树中检查更改时防止itemclick事件 [英] How to prevent itemclick event on check change in Ext Js Tree
本文介绍了如何在Ext Js树中检查更改时防止itemclick事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Ext.tree.Panel中添加了两个监听器检查更改和项目点击。但我注意到,
当检查更改发生时,它也触发项目点击事件。我希望阻止此项目点击事件。
I added two listeners 'check change' and 'item click' in Ext.tree.Panel. But i noticed that, when ever the check change occurs then it is also triggering item click event also. I wish to prevent this item click event.
listeners : {
checkchange: function(node, checked, eOpts){
alert('this is check change');
},
itemclick : function(obj, record, item, index, e, eOpts){
alert('this is item click');
}
}
这是Ext树中的监听器。在检查更改我希望得到这是检查更改此警报。
This are the listeners in Ext tree. On check change i wish to get 'this is check change' this alert only. How it is possible ?
推荐答案
您可以使用事件getTarget方法来检查复选框的DOM。完整的解决方案如下:
You can use event getTarget method to check DOM of the checkbox. The complete solution is below:
onItemClick: function( self, record, item, index, eventObj, eOpts ) {
var colIdx = eventObj.getTarget('.x-grid-cell').cellIndex;
if (colIdx===0) { // Apply item event click to the first column only
var node=self.getTreeStore().getNodeById(record.internalId);
if (!eventObj.getTarget('.x-tree-checkbox',1,true)) {
record.set('checked',!record.get('checked'));
this.fireEvent('checkchange', node, record.get('checked'));
}
}
}
这篇关于如何在Ext Js树中检查更改时防止itemclick事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文