更新:檢測在Javascript中使用jQuery的關鍵事件(回車)(在Linux平臺上)
我終於想通了,「按鍵」比在Linux平臺上「的keydown」或「KEYUP」一個更好的兼容性。我只是把「keyup」/「keydown」改成了「keypress」,所以一切順利。
我不知道是什麼原因,但它是我的解決方案。感謝所有回覆我的問題的人。
-
我有一些需要檢測按鍵事件代碼(我必須知道,當用戶按Enter鍵)與jQuery,這裏是在Javascript代碼:
j.input.bind("keyup", function (l) {
if (document.selection) {
g._ieCacheSelection = document.selection.createRange()
}
}).bind("keydown", function(l) {
//console.log(l.keyCode);
if (l.keyCode == 13) {
if(l.ctrlKey) {
g.insertCursorPos("\n");
return true;
} else {
var k = d(this),
n = k.val();
if(k.attr('intervalTime')) {
//alert('can not send');
k.css('color','red').val('Dont send too many messages').attr('disabled','disabled').css('color','red');
setTimeout(function(){k.css('color','').val(n).attr('disabled','').focus()},1000);
return
}
if(g_debug_num[parseInt(h.buddyInfo.id)]==undefined) {
g_debug_num[parseInt(h.buddyInfo.id)]=1;
}
if (d.trim(n)) {
var m = {
to: h.buddyInfo.id,
from: h.myInfo.id,
//stype: "msg",
body: (g_debug_num[parseInt(h.buddyInfo.id)]++)+" : "+n,
timestamp: (new Date()).getTime()
};
//g.addHistory(m);
k.val("");
g.trigger("sendMessage", m);
l.preventDefault();
g.sendStatuses("");
k.attr('intervalTime',100);
setTimeout(function(){k.removeAttr('intervalTime')},1000);
return
}
return
}
}
它在Windows上工作正常,但在Linux上,它有時無法捕捉到Enter事件。有人可以幫忙嗎?
更新時間:
,如果我只用英語交談似乎不錯。但我必須使用一些輸入法來輸入中文。如果這是問題? (JQuery的不能檢測輸入,如果我用中國的輸入法?)
和Linux無關,與它交配。 – think123 2012-07-31 09:06:41