在jquery中使用.on()的更有效方法

more efficient way of using .on() in jquery

本文关键字:有效 方法 on jquery      更新时间:2023-09-26

我目前正在构建一个app,它利用了jQuery中的.on()

我注意到,我正在大量使用.on()方法。以至于我的代码开始变得非常混乱。

$(document).on('click','.close-comments',function(){
shrinkComments();
});
// end function
$(document).on('click','.reload',function(){
// perform reload
});
// end function
$(document).on('click','.write-comment',function(){
});
// end function
$(document).on('click','#load-more',function(){
});
// end function

我想知道的是…有没有一种更有效的方法可以使用.on()方法来处理整个页面中可能发生的各种不同的点击?

大部分内容都是通过ajax加载的,所以内容会有所不同,但我只是在寻找一种更优雅的方法来使用这种方法,这样我的代码就更精简、更高效了

提前感谢

var clickHandlers = {
  '.close-comments' : function() {
    shrinkComments();
  },
  '.reload': function() {
    // perform reload
  },
  '.write-comment': function() {
  },
  '#load-more': function() {
  }
};
for (var selector in clickHandlers) {
  $(document).on('click', selector, clickHandlers[selector]);
}

如果要处理click以外的事件,可以向handler对象添加另一个层,并在for循环中添加另一层。