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过程有问题。有谁能进一些探讨?