2013-03-09 3 views
1

У меня есть следующий код, который работает отлично с живойJQuery жить против On

$('.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 файле. Я что-то упускаю?

+0

любезное обновление для добавления ошибки скрипта – hexblot

+0

Какую версию jQuery вы используете? –

+0

с использованием JQuery 1.7 – user2067567

ответ

6

Делегат событие родителю .numbersonly или document иначе

$(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)); 
}); 
+1

'var key = e.which;' http://api.jquery.com/event.which –

0

Если связать события с на, события будут переплетены только для элементов тока DOM (что соответствие вашего выбора) Так что рекомендую, которые используют on, после события domready.

пример:

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

Если вы используете живой, события будут обязательными для соответствующих элементов после изменения дерева DOM тоже. (Например, вы загружаете контент с помощью ajax)

Смежные вопросы