2012-04-26 115 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