如何在Ext Js树中检查更改时防止itemclick事件 [英] How to prevent itemclick event on check change in Ext Js Tree

查看:933
本文介绍了如何在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆