特にメソッドで使用する場合は、セレクターが可能な限り軽量であることを確認する必要があり.live()
ます。そこで何が起こるかというと、イベントは実際ににバインドされdocument.body
、特定のイベントが元のセレクター文字列と一致するかどうかをそこでチェックする必要があります。このプロセスはかなり費用がかかる可能性があり、あなたの場合はSizzle **を呼び出す必要もあり、これによりさらに遅くなります。
最良の解決策は、必要なDOMバブリングを使用.on()
または制限することです。.delegate()
つまり、イベントハンドラーをにバインドするのではなくbody
、最も近い共有の親ノードにバインドすることで、全体的なパフォーマンスが向上します。第二に、より重要なのは、そのセレクターを改善することです!
クラス名などを使用して、必要なノードを照会します。実際には、現在の状態よりもはるかに悪くなることはありません。
現在のフォームを最適化するには、次のように試してください。
$('#opp-tabs input:text, #opp-tabs textarea').not('#newActionText').on('keyup', 'closest shared parent selector', function() {});
参照:.delegate()、.on()
**SizzleはjQueryのjavascriptcss-selectorエンジンです