2013-07-24 18 views
7

<ul>には多くの子(3000アイテムに近い)があり、<li>には複数のレベルがあります。私は<li>の子供の可視性を切り替えるために使用する「クリック」(私はjQueryを使用しています)にイベントリスナーを添付しました。何百ものDOM要素のJavaScriptイベントリスナー

私は、非常に多くのイベントリスナーがパフォーマンスにどのように影響しているのだろうと思います。 (少なくとも1000人がいる!)。これはパフォーマンスにとって大きな問題ですか?

新しいWebブラウザでは問題のパフォーマンスが賢明ではありませんが、IE8は非常に遅いようです。すべてのイベントリスナーを叩くだけでは無責任なのですか?

答えて

9

回答は大きな回答ですはいです。 はい、パフォーマンスに影響します。イベントの委任は、この正確なことのために構築されました。すべての単一のliにハンドラをバインドする代わりに、親にバインドするul。このようにしてulはにclickイベントを委任します。

$("ul").on("click", "li", function() { 
//your code 
}); 
+0

もちろんです!このために乾杯、非常に便利です。 –

+1

数字でこれをサポートできる場合は、より役に立ちます。それが "パフォーマンスに影響を与える"とは全く役に立たないと言っています。もちろん、それはパフォーマンスに影響します。問題はどれくらいですか? –

関連する問題