0

我有以下功能,我正在尝试使用默认值执行。

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: 'div.thumbnailNameProfileListingItem span'

delegate: 'span'

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

4

1 回答 1

1

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

delegate: 'span.profileItemClick'

它完成了这项工作。

于 2012-06-12T11:20:12.057 回答