2013-01-25 20 views
2

經過大量調試後,我發現我無法在表單字段中輸入任何文本的原因。jQuery bind keyup,keydown - 無法輸入表單字段

我有一個jQuery函數來捕捉我在我的JS應用程序中使用的一些鍵。

$(document).bind 'keyup keydown', (e) -> 
    shifted = e.shiftKey 
    cntrled = e.metaKey || e.ctrlKey 

的Javascript:

$(document).bind('keyup keydown', function(e) { 
     shifted = e.shiftKey; 
     return cntrled = e.metaKey || e.ctrlKey; 
    }); 

爲什麼我不能用到位鍵入表單字段?

只要我刪除那部分,我可以再次打字。

+2

顯示您KEYUP/KEYDOWN功能的全部代碼。但是,假設在該回調的代碼中存在'e.preventDefault()'或'return false;'的唯一原因。 –

+0

那是CoffeeScript嗎? – JJJ

+0

這是完整的代碼,是的,它是咖啡文字 – Harry

回答

3

您正在返回取消事件的值cntrled。

在Coffeescript函數中的最後一個值將被返回。

作爲處理程序中的最後一行返回true。

的JavaScript相當於你現在正在做什麼...

$(document).bind('keyup keydown', function (e) { 
    var shifted = e.shiftKey 
     , cntrled = e.metaKey || e.ctrlKey; 
    return cntrled; 
}); 

把它變成...

$(document).bind('keyup keydown', function (e) { 
    var shifted = e.shiftKey 
     , cntrled = e.metaKey || e.ctrlKey; 
    return true; 
}); 
+0

Ag,使完整的認識是!該死,謝謝! – Harry