2012-11-07 45 views
2

我正在寫一個PHP/jQuery的應用程序,我想知道許多事件處理程序是如何太多?多少個javascript事件處理程序太多了?

例如,在我的主要js文件我有大約15

$('body').on('click','.someElementClass',function(){ 
    someFunction(); 
}); 

有沒有更好的方式來完成這項/什麼是我們的最佳做法?

編輯:上面的「身體」只是一個例子,我綁定到最深的元素,我可以

+0

如果你的DOM是不會全頁面加載'$(」。someElementClass')之間進行改變。點擊(FN)'會更快。 –

+0

我來這裏問同樣的問題,所以我不同意「封閉,沒有建設性」。感謝您的問候! – Shawn

回答

3

如果您的應用程序符合性能要求 - 那麼它是不是太多了。如果它不 - 那麼它太多了。那很簡單。

3

「有沒有更好的方法來完成這個/最好的做法是什麼?」

是的還有更好的方法。現在,您將所有點擊活動綁定到單個容器。

這意味着每.someElementClass,需要調用的頁面上的每一次點擊,而實際上多次因爲該事件氣泡。

的正確方法是將處理程序綁定到包括每個給定選擇最深層嵌套容器。這樣,每個處理程序只在該頁面的該部分內部進行點擊調用。

「我想知道有多少事件處理程序太多了?」

當然,這將取決於應用的要求,但使用上述的方法將使得多個處理程序不太關心的存在。

+0

編輯我原來的帖子。我對可能的最深的元素有約束力,身體只是一個例子。 – Nick

+0

@尼克:那會徹底改變這個問題。 –