1

我有下面的代码,它在 Live 上运行良好

 $('.numbersonly').live('keydown', 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

 $('.numbersonly').on('keydown', 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));
});

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

4

2 回答 2

6

将事件委托给父母.numbersonlydocument其他人

$(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));
});
于 2013-03-09T08:22:50.853 回答
0

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

例子:

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

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

于 2013-03-09T08:26:11.217 回答