2011-06-25 56 views
1

我想綁定一個組合鍵Ctrl + t與一些事件,所以如果我按下Ctrl + t在我的應用程序它應該去指定的網址我怎麼能使用jquery呢?使用Jquery綁定一個鍵?

回答

2

退房jQuery的熱鍵插件:

http://plugins.jquery.com/project/hotkeys

更新:

新增例如

<html> 
<head> 
    <script src="jquery-1.3.2.min.js"></script> 
    <script src="jquery.hotkeys.js"></script> 

    <script> 
    $(document).ready(function(){ 

     $(document).bind('keydown', 'Ctrl+t', function(event){ alert('Ctrl t pressed')}); 

    }); 
    </script> 
</head> 
<body> 

</body> 
</html> 
+0

是的,我已經下載該插件和我的代碼如下:jQuery的(文件).bind( '按鍵', 'CTR + T',函數(EVT){ \t \t警報(「Ctrl + T鍵是'; \t \t return false \t});但是這段代碼綁定了我的鍵盤中的每個鍵,不僅僅是ctrl + t,所以代碼有什麼問題? – Hussy

+0

@Hussy Hussain添加了實例 – marto

+1

@Hussy,你在第一個'ctrl',fyi中錯過了'l'。 –

-1
<html> 
<head> 
    <script src="jquery-1.3.2.min.js"></script> 
    <script src="jquery.hotkeys.js"></script> 

    <script> 
    $(document).ready(function(){ 
     function test(evt){ 
      var keyCode = (evt.which?evt.which:(evt.keyCode?evt.keyCode:0)) 
      if(keyCode==116) 
       window.location.href='your redirection'; 
     } 
    }); 
    </script> 
</head> 
<body> 
    <input type="Text" onkeypress=" test(event);" 
</body> 
</html> 
+0

-1這不起作用,因爲'test'在錯誤的範圍內。你包含'hotkeys.js',但不要使用它。你建議jQuery 1.3.2 - 當前版本是1.6.1。你正在做不必要的規範化。 – lonesomeday

0

試試這個:

var isCtrl = false; 
$(document).keyup(function(e) { 
    if (e.which == 17) isCtrl = false; 
}).keydown(function(e) { 
    if (e.which == 17) isCtrl = true; 
    if (e.which == 84 && isCtrl == true) { 
     window.open('http://www.google.com', '_self', 'resizable,location,menubar,toolbar,scrollbars,status'); 
     return false; 
    } 
}); 
+0

@hussy嗨朋友,測試一下。它會工作。 – thecodeparadox

1

你可以用​​,event.whichevent.ctrlKey來做到這一點。這些都是由jQuery規範化的,所以你不必大驚小怪地分辨出跨瀏覽器的東西。

$(document).keydown(function(event) { // or whatever selector 
    if (event.ctrlKey && (event.which === 84)) { 
     window.location = 'http://example.com'; // or whatever url 
    } 
});