2011-06-23 62 views
2

比方說,我有HTML錨,像這樣:如何使用忽略的href創建GWT錨點?

<a id="myid" href="something?a=b">Link</a> 

,我想在GWT錨,其具有將用戶在其他地方,而忽略href值點擊處理程序來包裝這個。

在常規的JavaScript

好像你可以通過執行實現這一目標:

<a id="myid" href="something?a=b" onclick="goSomewhereElse(); return false;">Link</a> 

但在GWT似乎沒有成爲一個辦法做到這一點......我失去了什麼?

謝謝!

回答

0

使用Anchor併爲其添加ClickHandler

+0

我添加了一個點擊處理程序,但瀏覽器仍然會將用戶發送到「href」中的任何值。這是因爲onClick函數有一個「void」返回類型,所以無法告訴瀏覽器忽略href值,據我所知。 – Peter

+5

試一下event.preventDefault() – fgb

+1

@fgb發佈這個答案! –

0

創建一個Anchor作爲new Anchor(textToDisplay)並添加ClickHandler它。

0

將其更改爲:

<a id="myid" href="javascript:;">Link</a> 
1

可你只需要使用G:錨標記,而不是一個?

<g:Anchor ui:field="myLink1">The Link To Click</g:Anchor> 

,然後在實現文件的,你可以有類似...

@UiField 
protected Anchor myLink1; 

@UiHandler("myLink1") 
public void handleMyLink1Click(ClickEvent event) 
{ 
    //code to execute on click; 
    event.preventDefault(); //If you want the href present 
} 

這將消除需要有HREF目前在所有。另外,如果你需要使用href,因爲你有了clickEvent,你可以添加event.preventDefault()到UiHandler。 (如在UiHandler的第二行所示)

也許我完全錯過了你要去的地方,但我希望這會有所幫助! :)