将ClickHandler添加到html类

时间:2012-11-21 17:52:57

标签: html gwt dom

我需要将ClickHandlers添加到许多复选框(> 4000),并且它正在执行40秒。 如何为html类中的所有元素添加处理程序?

现在:

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

我想:

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

2 个答案:

答案 0 :(得分:1)

我会采取一个简单的解决方案:

为什么不向父窗口小部件(html面板?或您正在使用的任何面板)添加点击处理程序并检查点击次数。

每当点击完成后,您就可以遍历您的复选框,看看哪一个具有检查状态。

答案 1 :(得分:0)

如果您的页面中有很多元素(在您的情况下为4000),那么为每个元素分配一个事件并不是一个好主意。这会伤害表现。相反,你可以使用事件委托,它包括(在点击的情况下)将事件分配给父元素并检查点击了哪个子元素并为其运行代码

以下是jsfiddle.net创建者David Walsh如何运作的非常好的教程。

How JavaScript Event Delegation Works

如果您使用jQuery,有一种非常简单的方法可以为您处理。

jQuery .live()