Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Динамическое создание обработчиков (https://javascript.ru/forum/jquery/50229-dinamicheskoe-sozdanie-obrabotchikov.html)

Кирюха =) 17.09.2014 17:14

Динамическое создание обработчиков
 
Доброго времени суток. С тех пор как убради .live() начались головняки... Его типа заменили на .on() . Как вешать обработчики для созданных элементов не пойму??? Вроде и пытаюсь юзать on, но он вешает на уже имеющиеся элементы, а на созданные не вешает. Инфы по этому вопросу в инете не нашел. Прошу вас расскажите как правильно использовать .on() для динамически созданных элементов.
jQuery(".decimal").on('keydown', function(event) {
        // Разрешаем: backspace, delete, tab и escape
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
             // Разрешаем: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) ||
             // Разрешаем: home, end, влево, вправо
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 // Ничего не делаем
                 return;
        }
        else {
            // Обеждаемся, что это цифра, и останавливаем событие keypress
            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault();
            }  
        }
    });

tsigel 17.09.2014 17:23

$(document).on("event", "selector", handler);


http://jquery.page2page.ru/index.php5/On

Кирюха =) 17.09.2014 17:29

jQuery(".decimal").on('keydown', '.decimal', function(event) {
        // Разрешаем: backspace, delete, tab и escape
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
             // Разрешаем: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) ||
             // Разрешаем: home, end, влево, вправо
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 // Ничего не делаем
                 return;
        }
        else {
            // Обеждаемся, что это цифра, и останавливаем событие keypress
            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault();
            }  
        }
    });

Типо вот так? Что то не работает...

Кирюха =) 17.09.2014 17:29

Прошу покажи пожалуйста на примере... Я что то туплю...

tsigel 17.09.2014 17:30

jQuery(document).on('keydown', '.decimal', function(event) {
        // Разрешаем: backspace, delete, tab и escape
        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
             // Разрешаем: Ctrl+A
            (event.keyCode == 65 && event.ctrlKey === true) ||
             // Разрешаем: home, end, влево, вправо
            (event.keyCode >= 35 && event.keyCode <= 39)) {
                 // Ничего не делаем
                 return;
        }
        else {
            // Обеждаемся, что это цифра, и останавливаем событие keypress
            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
                event.preventDefault();
            }  
        }
    });

Кирюха =) 17.09.2014 17:38

АААААА на документ нужно вязать... Вот теперь дошлоооо. Спасибо тебе друг!!!! Очень помог. держи + к карме)

tsigel 17.09.2014 17:41

Кирюха =),
не на документ, а на любой не динамический элемент, являющийся родителем.


Часовой пояс GMT +3, время: 21:12.