我有以下功能在chrome中工作正常:
function updateUserID(element) {
var username = $("#viewColTasks").val();
var currentEvent = window.event;
if (currentEvent.keyCode === 13){
if (username == ''){
$("#viewColTasks").attr("placeholder", "Please enter a valid username");
$("#viewColTasks").val("");
}
else{
var text = $(element).val();
changeUserTo = text;
socket.emit('getUserID', text);
$("#viewColTasks").attr("placeholder", "Viewing " + username + "'s work");
$("#viewColTasks").val("");
}
}
}
FF不支持吗?我一直在研究,它似乎与使用e作为事件有关,但我还没有设法在chrome和firefox上工作
有什么想法吗?
答案 0 :(得分:3)
您正在使用非标准(Microsoft)方式处理事件,这些事件依赖于事件对象可用作全局变量。
如果正确绑定侦听器,您将以不同的方式同时拥有事件目标(element
)和事件对象。既然你正在使用jQuery,你应该这样做:
$('#example_input').keydown(function(e) {
console.log(this); // the input you're typing at
console.log(e); // the event object (including keycode)
});
答案 1 :(得分:0)
如果是您所关注的密钥代码,请尝试将keyPress处理程序附加到文档中。任何按下页面元素的按键都会被冒泡,你可以在那里做任何事情。
尝试:
$(document).bind('keydown', function (e) {
alert(e.keyCode);
}
希望这有帮助