2013-07-10 76 views
1

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

<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被点击...要去/照片/ 11/

不幸的是,浏览器不会开始加载链接页面。它看起来好像阻止了它,但这是我在页面上唯一的javascript。 :-(

+0

这可能会帮助:http://www.techfoobar.com/2012/jquery-programmatically-clicking-a-link - 强制的默认行动 - *免责声明:它的我的博客* – techfoobar

+0

它的工作,谢谢,但我找到了另一种方式来做到这一点。 :) – SpaceHeroGuide

回答

0

刚刚找到了解决办法。我把它改成

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

其按预期工作。:-)

1

其实你可以做这样的事情和 - 惊喜 - 它的工作:

$('a.my_link')[0].click()