2

我正在尝试清理和改进一些代码。有一个相当大的片段附加了多个事件,$(document)如下所示:

$(document).on('eventA.nameA', '#pageA', function(){
    // do sth
});

$(document).on('eventB.nameB', '#pageB', function(){
    // do sth
});

$(document).on('eventC.nameC', '#pageC', function(){
    // do sth
});

所以基本上所有的事件绑定都直接在文档上。

问题:

是否有限制(我发现大约 50 个单独的文档绑定)以及在单个选择器上设置它的优点/缺点是什么,如下所示:

$(document)
    .on('eventA.nameA', '#pageA', function(){
        // do sth
    })
    .on('eventB.nameB', '#pageB', function(){
        // do sth
    })
    .on('eventC.nameC', '#pageC', function(){
        // do sth
    });

大多数绑定都是特定于页面的(它是一个 Jquery Mobile 应用程序,因此一旦将页面拉入 DOM,它的绑定就会像这样设置)。所以真的没有其他地方可以放置这些绑定,因为会在$(document)持续存在时被拉入和拉出。

感谢您的输入!

4

1 回答 1

2

将它们放在单个选择器上的好处是您可以避免$(document)每次调用(开销较小,因为$(document)会被缓存)。缺点是它们都必须一个接一个,并且你将它们缩进一层。这并不重要。

重要的,如果它们接近真正的选择器,则document对 ID 选择器使用委托可能真的很浪费。只需等到文档准备好,或者在元素更新时更新事件处理程序 - 特别是如果所有这些元素实际上不会同时存在于同一页面上。如果选择器实际上比这更复杂,请忽略本段:-)

于 2012-11-18T14:31:50.343 回答