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();

「デリゲート」プロパティのデフォルト値で示される DOM 要素をクリックすると、「クリック」に提供された関数が呼び出されません。この時点では、要素はまだ DOM に存在しません。これらの要素は、ユーザーがトリガーした別のイベントによって後で追加されます。

ただし、「デリゲート」プロパティの値を

delegate: 'div.thumbnailNameProfileListingItem span'

delegate: 'span'

この関数は、既存の DOM 要素と後で追加された DOM 要素の両方に対して呼び出されます。ExtJS での委譲の使用には、親要素と子要素にまたがるセレクターを許可しないという制限がありますか、それとも何か間違っていますか?

4

1 に答える 1

1

問題を解決できなかったので、「デリゲート」プロパティのセレクターを次のように減らすことにしました。

delegate: 'span.profileItemClick'

それは仕事をします。

于 2012-06-12T11:20:12.057 に答える