2013-07-10 109 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()