简体   繁体   中英

How to fire event when click on only last child element of treepanel in EXTJS

I have treepanel. I want to fire an event on click of only child element.

In my itemclick event it is firing all the time when I click. I want only to fire only when the last child is clicked.

Eg.: It should fire "Manage Application Child" not on the "Manage Application"

var root = {
    expanded: true,
    children: [{
        text: "Configure Application",
        expanded: true,
        children: [{
            text: "Manage Application",
            children: [{
                text: "Manage Application Child",
                leaf: true
            }]
        }, {
            text: "Scenario",
            leaf: true
        }]
    }, {
        text: "User Configuration",
        expanded: true,
        children: []
    }, {
        text: "Test Configuration",
        //leaf: true,
        expanded: true,
        children: [{
            text: "Manage User",
            leaf: true
        }, {
            text: "User rights",
            leaf: true
        }]
    }]
};

{
    xtype: 'treepanel',
    useArrows: true,
    autoScroll: false,
    animate: true,
    enableDD: false,
    title: 'Configuration',
    width: 200,
    height: 400,
    rootVisible: false,
    store: Ext.create('Ext.data.TreeStore', {
        root: root
    }),
    listeners: {
        itemclick: function (s, r) {
            alert(r.data.text);
        }
    }
}

If i understand correctly, you just have to check if the node is "leaf":

           itemclick: function (s, r) {
                if (r.data.leaf){ //or r.data.children == null
                    alert(r.data.text);
                }                 
            }

我创建了FIDDLE,我认为它将为您提供所需的帮助

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM