JQuery Live vs On

我有以下代码,与Live一起工作正常

$('.numbersonly').live('keydown', function (e) { var key = e.charCode || e.keyCode || 0; return (key == 8 || key == 9 || key == 46 || (key >= 37 && key = 48 && key = 96 && key <= 105)); }); 

然后我改为On

  $('.numbersonly').on('keydown', function (e) { var key = e.charCode || e.keyCode || 0; return (key == 8 || key == 9 || key == 46 || (key >= 37 && key = 48 && key = 96 && key <= 105)); }); 

但我在min.js文件中收到脚本错误。 我错过了什么吗?

将事件委托给.numbersonly父级或以其他方式记录

 $(document).on('keydown', '.numbersonly', function (e) { var key = e.charCode || e.keyCode || 0; return (key == 8 || key == 9 || key == 46 || (key >= 37 && key <= 40) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105)); }); 

如果您将事件与on绑定,则事件将仅为当前DOM元素(与您的选择器匹配)绑定。因此建议使用on,’after’domready事件。

例:

  $(document).ready(function(){ ... $('selector').on('event',eventHandler(e){ ... }); }); 

如果使用live,则在修改dom树之后,事件将绑定到匹配的元素。 (例如,您使用ajax加载内容)