有趣的是,这可能是jQuery的“功能请求”(即错误)。如果将jQuery事件绑定到元素,则jQueryclick事件仅触发元素上的click动作(在DOM上称为onClick事件)。您应该转到jQuery邮件列表并进行报告。这可能是通缉犯,但我不这么认为。
编辑:
我进行了一些测试,您说的是错误的,即使您将函数绑定到’a’标签,它仍然无法将您带到href属性指定的网站。尝试以下代码:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
/* Try to dis-comment this:
$('#a').click(function () {
alert('jQuery.click()');
return true;
});
*/
});
function button_onClick() {
$('#a').click();
}
function a_onClick() {
alert('a_onClick');
}
</script>
</head>
<body>
<input type="button" onclick="button_onClick()">
<br>
<a id='a' href='http://www.google.com' onClick="a_onClick()"> aaa </a>
</body>
</html>
除非您直接单击链接(带有或不带有注释代码),否则它永远不会进入google.com。还要注意,即使将click事件绑定到链接,单击按钮也不会变成紫色。如果直接单击链接,它会变成紫色。
我进行了一些研究,似乎.click不能与’a’标记一起使用,因为浏览器不会支持javascript的“假点击”。我的意思是,您无法使用javascript“单击”元素。使用’a’标签,您可以触发其onClick事件,但是链接不会更改颜色(对于已访问的链接颜色,在大多数浏览器中默认为紫色)。因此,使$()。click事件与’a’标签一起使用没有意义,因为转到href属性的动作不是onClick事件的一部分,而是在浏览器中进行了硬编码。