0

我在 Extjs4 中工作,并被困在如何捕捉超链接上的事件。我一直在努力,但无法解决。

这是我的代码:

查看代码

Ext.define('AM.view.user.linkView', {
    extend: 'Ext.panel.Panel',
    alias: 'widget.Link',
    title: 'My Cool Panel',
    html: '<div><a href="#" id="linkId">This link will open a window</a></div><br /> <label for="myInput">Type here: </label><input name="myInput" type="text" value="" />',
});

控制器代码

Ext.define('AM.controller.Users', {
    extend: 'Ext.app.Controller',

    stores: ['Users'],

    models: ['User','Book'],

    views: ['user.Edit', 'user.List','user.Create','user.linkView'],
    init: function() {
        this.control({
             'Link': {
                     afterrender: function(cmp)
                     {
                         Ext.get('#linkId').on('click', function(event, target) {
                            console.log(target);
                        }, this);
                     }
                 }
             });
        }
    });

当我运行上面的代码时,我得到了这个错误:

Uncaught TypeError: Cannot call method 'on' of null

我怎么解决这个问题?

4

1 回答 1

0

将侦听器更改为:

afterrender: function(cmp) {
    cmp.mon(cmp.getEl(), 'click', function(event, target) {
        console.log(target);
    }, this, {delegate: '#linkId'});
}
于 2013-04-20T22:27:02.030 回答