我已經得到了幫助早here與什麼原來是一個傳播問題,但我現在試圖在輸入上使用HTML5 autofocus,現在我的代碼中斷。傳播和Keydown jQuery問題
這裏是我的工作代碼:
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(':not(form)').keydown(function(event) {
$j('form').keydown(function(event) {
event.stopPropagation();
});
if(event.keyCode==82) {
$j(document).trigger(location.href = '/?random')
}
});
</script>
基本上,我有一些鍵盤導航設置。如果您按下R,它會將您帶到隨機頁面。
我試圖在用戶在表單/輸入框中輸入時禁用該功能,原因很明顯。此代碼有效,除非我嘗試使用自動對焦。如果您開始在頁面加載中正確輸入,並且您輸入的第一個字母是R,則它會轉到隨機頁面。
如果先輸入另一個字母,則R會以正常字母輸入。我是一個新手在這個東西,所以任何幫助非常感謝!謝謝。
編輯:經過進一步測試,看起來問題可能不是自動對焦,但主要是當第一個字母輸入是R時,它會出錯。
'event.stopPr opagation()'真的停止了事件,加入'return false'會做'event.preventDefault();' – Rafay
stopPropagation不會停止事件。它阻止事件冒泡樹。 – gislikonrad
已更新的答案。 – jancha