javascript - ExtJs 和子元素上的单击事件

标签 javascript extjs

我有下一个 ExtJs 代码

Ext.create('Ext.panel.Panel', {
    renderTo:'center_div',
    width: 700,    
    layout: 'fit',
    id: 'test',
    items:
    [
        { 
            xtype: 'box', 
            html: '<div style=\"height: 20px;\"> </div>' 
        },
        {         
            xtype: 'box',
            html: '<ul> ' + 
                    '<li id="id1" class=\"active\"><div>Create</div><span><i></i>Step 1</span></li>' +  
                    '<li id="id2"><div>Assign</div><span><i></i>Step 2</span></li>' + 
                    '<li id="id3"><div>Filter</div><span><i></i>Step 3</span></li>' +
                    '<li id="id4"><div>Summary</div></li>' +
                  '</ul>',
            cls: 'x-wizard-steps',
           // delegate: '.x-wizard-steps > ul',
            listeners: {
                afterrender: function(component) {
                    console.log('component' ,component);                    
                    var childLi = Ext.select('.x-wizard-steps > ul > li'); 
                    console.log('childLi', childLi);
                    console.log('childLi.elements', childLi.elements[0].id);                        
                    Ext.each(childLi.elements, function(item,i) {                        
                        console.log('item', item.id);
                        item = Ext.get(item.id);
                        item.on({
                            click: function(cmp, a) {
                               console.log(cmp);                                
                               console.log(a);
                            }
                        });                    

                    });                             

                   var options = {
                        xtype: 'box',       
                        id: 'comp_',
                        html: 'fdsfdsfdsfdsfdsf',
                        margin: '0 0 8 0'
                   };

                   var component1 = Ext.create('Ext.Component', options);
                   Ext.getCmp('test').add(component1);

                }
            }
        }
    ]
}); 

我需要在我的盒子 html 代码中的所有 LI 上放置事件监听器。

<li id="id2">
   <div>Assign</div><span><i></i>Step 2</span>
</li>

点击事件工作正常,但如果我点击它会给我 DIV 或 SPAN,有时还会给我 LI,这取决于我点击的位置。无论我点击 LI 中的哪个区域,如何始终获取 LI 元素?

最佳答案

找到了

在这里

   item.on({
       click: function(cmp, a) {
           console.log(cmp);                                
           console.log(a);
           console.log(this); // My LI
       }
     });

有我的 LI

关于javascript - ExtJs 和子元素上的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19371687/

相关文章:

javascript - 是否存在弹出窗口? (javascript)

javascript - 将焦点更改到另一个窗口,其中名称未定义

ExtJS 3.4 : Grid does not automatically save and restore state. 我做错了什么?

javascript - Sencha Touch Tab 处理程序

android - 无法通过 cordova app loader : addRow is not defined 在 cordova android 上加载 ExtJS

javascript - 如何使用 :table-header-style in Quasar? 设置 fontSize 和 fontWeight

javascript - 将值添加到单元格内下拉列表

javascript - 组件未在当前 View 中更新

java - 如何在JAVA中为Ext.data.JsonStore创建JSONObject?

gridview - ExtJS 4 网格焦点加导航