事件不在Firefox中工作

时间:2013-02-19 14:53:15

标签: javascript jquery

我有以下功能在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上工作

有什么想法吗?

2 个答案:

答案 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);
}

希望这有帮助