W3C的怪癖


<input type="button" id="btn" onclick="document.getElementById('myBtn').click()" value="click me to triger Other"/>

<input type="button" id="myBtn" onclick="alert('You click Button')" value="demo"/>

OK,这样的代码在IE和FF下都没有任何问题。点击第一个按钮会触发第二个按钮的点击事件。不过,将代码改为以下形式:

<input type="button" id="btn" onclick="document.getElementById(mylink).click()" value="click me to triger Other"/>
<a id="mylink" href="#" onclick="alert('Your click link!')">This is Link <a/>

按通常的想法。此时,点击按钮一,超链接事件也会被触发。

现实上,这在IE下是对的,在FF中是不对不。为什么?因为,W3C的怪癖,超链接不能使用click调用!

网上找了半天都没有找到合适的解决方案。在使用FireBug 跟踪过程了半天,突然醒悟:


<input type="button" id="btn" onclick="document.getElementById(mylink).onclick()" value="click me to triger Other"/>
<a id="mylink" href="#" onclick="alert('Your click link!')">This is Link <a/>

这时,IE和FF下都通过。不过新的问题又产生了。此是event过程有问题。有谁能进一些探讨?

原文地址:https://www.cnblogs.com/minttang/p/1308998.html