当我们在移动应用程序中面临GWT性能问题时,由于使用GWT开发了Google Wave代码。

我以为所有的按钮都有小部件,但是如果您使用Firebug查看生成的HTML,则在可单击的Divs上看到未设置的onClick属性。我想知道他们如何实现它的元素,该元素发出点击或鼠标事件,似乎既不是小部件,也不是onClick属性。

能够创建此类组件肯定会使我进一步优化性能。

谢谢。 PS:Google也不会去开源客户端代码。找不到它。

有帮助吗?

解决方案

GWT文档 显示如何在GWT Java应用程序中创建处理程序:

public void anonClickHandlerExample() {
  Button b = new Button("Click Me");
  b.addClickHandler(new ClickHandler() {
    public void onClick(ClickEvent event) {
      // handle the click event
    }
  });
}

这将生成HTML元素并将单击处理程序绑定到它。但是,实际上,这与使用相同的结果 document.getElementById('element').onclick() 在您页面中的现有元素上。

其他提示

你不必放 onclick HTML上的属性使其具有一个单击的处理程序。这是一个非常简单的例子:

<div id="mydiv">Regular old div</div>

然后在脚本中:

document.getElementById('mydiv').onclick = function() { 
    alert('hello!');
}

他们不会直接设置OnClick属性,它将是在GWT代码或其他JavaScript库中设置的。

您可以将功能连接到 onclick 使用JavaScript的事件。这是一个示例 jQuery:

$(document).ready(function(){
    $("#div-id").click(function(){
        /* Do something */
    });
});

如果您有兴趣围绕此功能优化性能,则可能需要调查事件委托,具体取决于您的情况。

为身体内的每个DOM元素生成一个点击事件。事件从身体传播到单击的元素(除非您使用Internet Explorer),击中元素,然后返回气泡。该事件可以通过DOM元素属性,JavaScript中的事件处理程序或任何父级属性(冒泡或捕获事件触发此触发)捕获。

我想他们只是将其设置在.js文件中。例如,用$(document).ready()轻松完成jQuery。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top