GWT кликабельная ссылка (якорь) без ссылки - PullRequest
9 голосов
/ 05 декабря 2010

Я пытаюсь создать ссылку (привязку) в GWT, по которой можно щелкнуть, и ее можно обработать ClickEvent, в то время как эта привязка не будет перезагружать страницу.Это в основном означает, что href не должно быть установлено.

В JavaScript это делается так:

<a href="javascript:handleAnchorClick();">Link</a> 

или с

<a href="#" onclick="return handleAnchorClick()">Link</a>  

, где handleAnchorClick() возвращает false.

Каков наилучший способ добиться этого в GWT?

Ответы [ 4 ]

12 голосов
/ 05 декабря 2010

Используйте элемент Anchor и вызовите его метод addClickListener () и добавьте любую логику.Якорь такого типа не перезагружает страницу.

10 голосов
/ 07 декабря 2010

Слушатели устарели в обработчиках использования GWT

Примерно так:

Anchor a = new Anchor("hi");
a.addClickhandler(new ClickHandler() {
     @Override
     public void onClick(ClickEvent event) {
           Window.alert("hi");
     }

});
8 голосов
/ 07 августа 2011

Не забудьте добавить стиль для привязки, иначе он не будет вести себя как обычная ссылка html:

.anchor {
            text-decoration: underline;
            font-weight: bold;
            cursor: pointer;
            display: block;
        }
8 голосов
/ 25 июня 2011

Как вы описываете, использование href = "#" перезагрузит страницу.

Вот что вы можете сделать в UIBinder:

    <g:Anchor ui:field="myScriptedAnchor" href="javascript:;">
        MyScriptedAnchorText
    </g:Anchor>

Затем вы можете делать все, что угодно, обрабатывая ClickEvent в реализации представления.

    @UiHandler("myScriptedAnchor")
    void onMyScriptedAnchorClick(ClickEvent event) {
        // TODO whatever you want to do...
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...