2012-04-26 125 views
0

點擊錨點後,是否可以改變執行哪個onclick javascript函數?點擊後點擊錨點的點擊功能

實施例:

<a id="myLocation" class="locator" href="#" onclick="javascript:getMyLocation();">&nbsp;&nbsp;&nbsp;&nbsp;My Location</a> 

當用戶點擊這個錨顯示與標記在地圖上它們的位置。

我希望onclick現在更改爲RemoveLocation(),以便當它們再次單擊錨點時,將刪除其在地圖上位置的標記。

getMyLocation()和RemoveLocation已經寫好我只需要在用戶單擊錨點後更改onclick事件(如果可能的話)。

+0

如果你使用jQuery,您可以用'$ .toggle()' – Nadh 2012-04-26 17:21:11

+0

@NADH:那個只作品的知名度。 – 2012-04-26 17:23:09

+0

@ElliotBonneville,這是一個不同的切換。你可以做'$('#selector')。toggle(function(){alert('a');},function(){alert('b');});' – Nadh 2012-04-26 17:24:55

回答

1

添加到您的getMyLocation()功能:

document.getElementById("myLocation").onclick = RemoveLocation; 

而在RemoveLocation()功能:

document.getElementById("myLocation").onclick = getMyLocation; 
+0

請注意您正在調用這些函數,而不是將它們作爲參考傳遞。 – Chopin 2012-04-26 17:38:40

+0

這是正確的,我的錯誤。 '()'應該被刪除以避免這種情況,編輯來糾正。 – 2012-04-26 17:39:12

+0

它發生在每個人身上:P – Chopin 2012-04-26 17:42:30

1

是的,這是可能的!

您只需要重新分配該元素上的click事件的事件處理程序。

喜歡的東西:

function getMyLocation() { 

    ... 

    document.getElementById("myLocation").onclick = RemoveLocation; 
} 


function RemoveLocation() { 

    ... 

    document.getElementById("myLocation").onclick = getMyLocation; 
} 

或者如果你使用jQuery,看到toggle event function

+0

謝謝,我很感激。 – broguyman 2012-04-26 18:47:06

+0

不客氣! – Chopin 2012-04-26 18:58:51