我最近从JQuery 1.7升级到2.0.2,现在我想做一件简单的事情。如果我坚持使用版本1.7它可以工作,但不知何故它不适用于版本2.0。 : - / 我的页面上有两个链接:
<span class="goButtons">
<a href="{$previousURL}" class="previousButton">«</a>
<a href="{$nextURL}" class="nextButton">»</a>
</span>
这两个链接指的是我照片库中的上一张和下一张图片。如果我点击它们,他们会将我重定向到正确的图像。现在我想添加一个keydown处理程序,如果我按左箭头键或右箭头键,就会触发对这些链接的点击。
$(function () {
$('.goButtons a').on('click', function () {
console.log('a.' + $(this).prop('class') + ' was clicked... going to ' + $(this).prop('href'));
return true;
});
$(window).keydown(function (e) {
if (e.which == 37)
$('a.previousButton').trigger('click');
else if (e.which == 39)
$('a.nextButton').trigger('click');
});
});
如果我打开Firebug激活的页面并按右箭头键,控制台会显示:
单击a.nextButton ...转到/ foto / 11 /
不幸的是浏览器没有开始加载链接页面。看起来好像它会阻止它,但这是我在页面上唯一的javascript。 : - (
答案 0 :(得分:1)
实际上你可以做这样的事情 - 惊喜 - 它确实有效:
$('a.my_link')[0].click()
答案 1 :(得分:0)
刚刚找到解决方案。我把它改成了
$('.goButtons a').on ('click', function () {
window.location.href = $(this).prop ('href');
});
按预期工作。 : - )
答案 2 :(得分:0)
您可以在此a.trigger('click')
{{1}}找到更详细的解释,说明为什么这不适用。