1

我最近从 JQuery 1.7 升级到 2.0.2,现在我想做一件简单的事情。如果我坚持使用 1.7 版,它可以工作,但不知何故,它在 2.0 版中不起作用。:-/ 我的页面上有两个链接:

<span class="goButtons">
<a href="{$previousURL}" class="previousButton">&laquo;</a>
<a href="{$nextURL}" class="nextButton">&raquo;</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。:-(

4

3 回答 3

1

实际上你可以做这样的事情 - 令人惊讶 - 它确实有效:

$('a.my_link')[0].click()
于 2013-12-25T10:29:05.373 回答
0

a.trigger('click')您可以在https://stackoverflow.com/a/1694803/2598398找到更详细的解释为什么这不能开箱即用。

于 2013-07-31T10:14:36.227 回答
0

刚刚找到解决方案。我把它改成

$('.goButtons a').on ('click', function () {
    window.location.href    =   $(this).prop ('href');
});

按预期工作。:-)

于 2013-07-10T14:04:10.500 回答