0

動的にロードされた (ajax) ページで JavaScript イベントを処理するための「適切にスレッド化されたパス」とは何ですか。

私は ajax を介してサブビューをプルするタブ バー コントローラーを備えたアプリを持っています。これらのビューには独自の js があります。これは最初のラウンドでは問題ありませんが、誰かがアプリを長時間使用し、すべてを循環させる場合タブ ビューが繰り返し表示されると、イベントは何度も何度もバインドされ続けます。これは、特にこれらのサブビューが管理する独自のサブビューを持っている可能性があり、そのうちのいくつかが多くのイベント ハンドラーを持つ可能性があることを考えると、恐ろしく非効率的です。

これを解決するためのよりエレガントなアプローチは何ですか? (ところで、私はjQueryを使用しています)

4

1 に答える 1

0

シナリオにもよりますが、コードを 1 行も表示していませんが、unbind新しいコールバックをバインドする前に使用できます。

$('#foo').unbind('click').click(handler);
...
$('#foo').unbind('click').click(handler)
...
$('#foo').unbind('click').click(handler)
...

$('#foo').click(); // handler fire one time only.
于 2012-05-18T12:22:45.867 に答える