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

そして、私はオンに変更しました

 $('.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

Delegate event to parent of .numbersonly or document otherwise

$(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 要素 (セレクターに一致するもの) に対してのみバインドされます。

例:

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

ライブを使用する場合、DOM ツリーも変更した後、イベントは一致した要素にバインドされます。(たとえば、コンテンツを ajax でロードする)

于 2013-03-09T08:26:11.217 に答える