0

我有一个菜单按钮,它由图像下的图像和文本组成。整个事情是这样构建的:

    ImageResource icon = ...;
    final Element span = DOM.createSpan();

    Image image = new Image(icon);
    span.insertFirst(image.getElement());

    Element div = DOM.createDiv();
    div.setInnerHTML(text);

    span.insertAfter(div, span);

    image.sinkEvents(Event.ONCLICK);

    getElement().insertFirst(span);

点击事件在演示者中设置如下:

       ...
       private void bindEvents() {
        display.getButton().addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                Window.alert("test");
             }
    });

单击事件仅部分起作用,当我单击图像下的文本时,单击事件可以正常工作,但是当我单击图像时没有执行单击!?

4

1 回答 1

1

另一种方法:

FlowPanel myButton = new FlowPanel();
myButton.add(new Image(icon));
myButton.add(new Label(myButtonText));

ClickHandler h = new ClickHandler() {
    @Override
    public void onClick(ClickEvent event) {
        // do something
    }
};
myButton.addDomHandler(h, ClickEvent.getType());

这将捕获图像及其下方文本的点击事件。

于 2012-10-15T16:37:08.340 回答