ExtJS事件委派无法正常工作

时间:2012-06-11 23:07:00

标签: javascript extjs extjs4

我有以下函数,我试图用默认值执行。

init: function(userConfig) {
    var config = {};
    Ext.apply(config, userConfig, {
         delegate: 'div.thumbnailNameProfileListingItem span'
    });

    Ext.getBody().on({
        scope: this,
        click: function(a, b, c, d, e) {
           console.log(a);
        },
        delegate: config.delegate
    });
}
init();

当我单击由“delegate”属性的默认值表示的DOM元素时,不会调用提供给“click”的函数。此时DOM中尚不存在这些元素,稍后会由另一个用户触发的事件添加它们。

但是当我从

更改“delegate”属性的值时
delegate: 'div.thumbnailNameProfileListingItem span'

delegate: 'span'

为现有和后来添加的DOM元素调用该函数。在ExtJS中使用委托是否存在限制,因为它不允许在父元素和子元素之间跨越选择器,或者我在做其他错误吗?

1 个答案:

答案 0 :(得分:1)

我无法解决问题,所以我决定将“delegate”属性中的选择器缩减为:

delegate: 'span.profileItemClick'

它完成了这项工作。