3

在我的 extjs 网格“cutterGrid”中,我有一个具有以下输出的渲染器

<a href="#" class="myclass">Product 1</a>

在我的控制器上,我有以下内容

    '#cutterGrid':{
        cellclick :this.onCutterSelectRow
    },

这可行,但显然这可以单击整行。我只想在特定的单元格上使用它。

这是我网格中的字段

 {
                            xtype:'gridcolumn',
                            dataIndex:'CutterNumber',
                            text:'Cutter',
                            renderer: renderCutter,
                            flex:1,
                            sortable: true
                        },
4

2 回答 2

2

cellclick 事件将几个参数传递给您的函数 - 其中之一是 EventObject

cellclick( Ext.view.Table this, HTMLElement td, Number cellIndex, Ext.data.Model record, HTMLElement tr, Number rowIndex, Ext.EventObject e, Object eOpts )

在您的功能中,您应该能够做到这一点:

function onCutterSelectRow(table, td, cellIndex, record, tr, rowIndex, e, eOpts)
{
    var target = e.getTarget();
    //test HtmlElement target to be your anchor, by class name and element.
}
于 2012-06-11T16:56:11.917 回答
1

订阅ahref事件的问题是您需要等到 HTML 元素呈现后才订阅它。当我的表单上有一个需要收听的链接时,我做了这样的事情:

{
   xtype: 'box',
   autoEl: '<a href='#'>Link</a>',
   listeners: {
      render: function(e) {
         e.getEl().down('a').on('click', function() {
            console.log('GOTCHA!');
         }, e);
      }
   }
} 
于 2012-06-11T12:01:31.050 回答