0

Image と Image の下の Text で構成される MenuButton があります。全体は次のようにビルドされます。

    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 に答える