Cập nhật:Phát hiện sự kiện quan trọng (Enter) với JQuery trong Javascript (trên nền tảng Linux)
Cuối cùng tôi đã tìm ra rằng "bấm phím" có khả năng tương thích tốt hơn so với "KeyDown" hoặc "KeyUp" trên nền tảng Linux. Tôi vừa thay đổi "keyup"/"keydown" thành "keypress", vì vậy tất cả đều ổn.
Tôi không biết lý do là gì nhưng đó là giải pháp cho tôi. Cảm ơn tất cả những ai đã trả lời câu hỏi của tôi.
-
Tôi có một số mã mà cần phải phát hiện sự kiện nhấn phím (Tôi có biết khi nào báo chí sử dụng Enter) với JQuery và đây là các mã trong 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
}
}
Nó hoạt động tốt trên Windows nhưng trên Linux, đôi khi nó không bắt được sự kiện Enter. Ai đó có thể giúp đỡ?
Cập nhật:
Có vẻ như tốt nếu tôi chỉ sử dụng tiếng Anh để nói chuyện. Nhưng tôi phải sử dụng một số phương thức nhập liệu để nhập tiếng Trung. Nếu đó là vấn đề? (JQuery không thể phát hiện Enter nếu tôi sử dụng phương pháp đầu vào Trung Quốc?)
và Linux có gì để làm với nó giao phối. – think123