1

我有以下在 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 上运行任何东西

有任何想法吗?

4

2 回答 2

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)
});
于 2013-02-19T14:58:21.213 回答
0

如果它是您想要的关键代码,请尝试将 keyPress 处理程序附加到文档。页面上元素中的任何按键都会冒泡,你可以在那里做你的事情。

尝试:

$(document).bind('keydown', function (e) {
    alert(e.keyCode);
}

希望这可以帮助

于 2013-02-19T15:10:41.403 回答