我正在使用 jQuery live()
函数来检测用户何时按下了一些特殊键(箭头等):
$('.TextBox1').live('keydown', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
// ...
}
});
它在昨天突然停止工作时正常工作了几个月,阻止了它下面的每一行 JS 代码的执行。我试图用 .keyup
函数替换它,但这没有帮助。可能发生了什么?
最佳答案
我假设您已经更新到最新版本的 jQuery? live()
自 jQ1.7 以来已被弃用,现在从 1.9 开始被删除。
相反,您应该使用带有委托(delegate)参数的 on()
:
$(document).on('keydown', '.TextBox1', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
//...
}
});
请注意,为了获得最佳性能,您应该将上例中的 document
替换为 .TextBox1
的最近父元素,该元素在页面加载后不会动态附加到 DOM。
关于javascript - Jquery live 函数突然不工作了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14628028/