原型 - 模拟点击标签

问题描述:

如何模拟原型中锚点(<a>)标签的点击?原型 - 模拟点击<a>标签

例如我期望下面的代码工作在点击第二个链接(“点击我”)将导致alert('here');被执行。

<a id="myLink" href="" onclick="alert('here'); return false;">don't click me</a> 
<br /> 
<a href="" onclick="$('myLink').click(); return false;">click me</a> 

thanks,p。

您可以从Protolicious库使用simulate()方法:

您可以看到测试沙箱here,但随着事件的补充道:

<a id="myLink" href="#">don't click me</a> 
<br /> 
<a id="clicked" href="#">click me</a> 

<script type="text/javascript"> 
Event.observe($('myLink'), 'click', function() { alert ('aaa'); return false; }); 
Event.observe($('clicked'), 'click', function() { alert ('bbb'); $('myLink').simulate('click'); return false; }); 
</script> 
+0

你试过运行代码吗?因为我认为问题可能是$('myLink')没有返回HTMLElement对象。它不适合我... – pstanton 2010-07-15 07:08:06

+0

用示例页面查看修订后的答案:) – 2010-07-15 07:47:29

+0

啊我看到..我需要protolicious ...但肯定有原型没有第三方库的方式?感谢信息..至少我知道有一种方式。如果其他人有原型只回答,会稍微保持一点。 – pstanton 2010-07-15 09:04:54

我没有测试过,但试试这个:

<a id="myLink" href="" onclick="alert('here'); return false;">don't click me</a> 
<br /> 
<a href="" onclick="Event.fire($('myLink'), 'click');">click me</a> 
+0

这不起作用。 – pstanton 2010-07-17 21:40:20

+0

糟糕,我忘了原型事件仅限于自定义事件。我可以问为什么你不能模拟点击事件?有机会有更好的方法来处理它。 – ashicus 2010-07-18 03:01:02

+0

,因为这个其他链接有一堆由第三方程序注册的事件监听器。将其他链接用作各种注册表而不是将实际获得点击的链接上的所有事件处理程序放在一起会更容易。 – pstanton 2010-07-19 04:24:29