$(document).on多个事件处理程序取决于选择器

时间:2018-06-05 16:05:02

标签: javascript jquery javascript-events jquery-selectors domdocument

在我最近开始研究的一个应用程序中,一个JS文件中有大约80到90个$(document).on点击事件。有点简化的版本是:

$(document).on("click", selector1, eventHandler1)
$(document).on("click", selector2, eventHandler2)
$(document).on("click", selector3, eventHandler3)
// and so on...

因此,IE中的性能受到严重影响。或者我应该说,它使IE非常慢。

第一次加载应用程序并不需要花费太多时间,但是一旦我点击某些东西它会卡住一段时间。同时发射80到90个事件,充分消耗所有带宽。

我不能简单地将处理程序附加到元素(例如$(selector1).on('click',eventHandler1)),因为大多数这些元素都动态附加到DOM。

我正在考虑根据选择器而不是并行地调用处理程序。

有没有办法在单个$(document).on事件中压缩所有这些与选择器相关的处理程序。有点像:

(document).on('click',function(e){
  // check for selector in if statement and content of respective handler inside that block of if statement
  // Selectors are not that simple to be checked with hasClass(), closest()  etc. So please consider that as well
})

任何帮助将不胜感激。越快越好。

0 个答案:

没有答案