我有一个锚点和一个文本框如下:
<div id="container">
<input type="text" id="textBox" />
<a id="anchorTest" href="javascript: alert('inside anchorTest')">Click me</a>
</div>
单击回车键时,我正尝试将默认按钮设为锚点:
$(document).ready(function () {
$('#anchorTest').click(function () {
alert('clicked');
});
$('#container').keyup(function (e) {
if (e.keyCode == 13) {
$('#anchorTest').triggerHandler('click');
}
});
});
但锚href javascript永远不会被调用?
如何使用JQuery单击锚点以便也调用href?
我使用下面的代码并且它有效,但有更好的方式,因为它提交表单,而我想要一个纯粹的JavaScript代码:
window.location = $('#anchorTest').attr('href');
由于
答案 0 :(得分:4)
jQuery以“特殊”方式处理锚标签上的click
事件。有关详细信息,请参阅此问题 - Can I call jquery click() to follow an <a> link if I haven't bound an event handler to it with bind or click already?
从上面的问题 -
我做了一些研究,似乎没有.click 使用'a'标签,因为浏览器不支持“假点击” 用javascript。我的意思是,你不能用javascript“点击”一个元素。 使用'a'标签,您可以触发其onClick事件,但链接不会 更改颜色(访问过的链接颜色,默认为紫色) 大多数浏览器)。因此,进行$()。click事件是没有意义的 使用'a'标签,因为转到href属性的行为不是 onClick事件的一部分,但在浏览器中进行了硬编码。
答案 1 :(得分:0)
将“triggerHandler”更改为“触发”,看看是否能解决您的问题。
我认为triggerHandler会绕过标准行为,并在你的情况下执行未设置的“onclick”事件处理程序。
答案 2 :(得分:0)
if (e.keyCode == 13) {
$('#anchorTest').click();
}