0

多くのチェックボックス (>4000) に ClickHandlers を追加する必要があり、40 秒間実行しています。HTMLクラスのすべての要素にハンドラーを追加するにはどうすればよいですか?

今:

 ChckBoxHandler cbh = new ChckBoxHandler();
SimpleCheckBox.wrap(DOM.getElementById("chbid" + ID)).addClickHandler(cbh);

私が欲しい:

DOM.getElementsByClass("chkboxes").addClickHandler(cbh);
4

2 に答える 2

1

私は簡単な解決策を取ります:

親ウィジェット (html パネル? または使用しているパネル) にクリック ハンドラーを追加して、クリックをチェックしてみませんか。

クリックが行われるたびに、チェックボックスをループして、どれがチェックされているかを確認できます。

于 2012-11-21T21:52:12.357 に答える
0

ページに多数の要素 (この場合は 4000) がある場合、すべての要素にイベントを割り当てるのは得策ではありません。パフォーマンスが低下します。代わりに、(クリックの場合)イベントを親要素に割り当て、どの子要素がクリックされたかを確認し、そのコードを実行することで構成されるイベント委任を使用できます

これは、jsfiddle.net の作成者である David Walsh による、非常に優れたチュートリアルです。

JavaScript イベント委任のしくみ

jQuery を使用する場合は、それを処理する非常に簡単な方法があります。

jQuery.live()

于 2012-11-21T19:40:05.763 に答える