Перепривязка jQuery или живое событие для нового элемента?

Я использую этот timepicker, который отлично работает, но проблема в том, что я добавляю поля ввода на лету и средство выбора времени не работает с вновь созданными входными тегами

Я использую этот jQuery

    $('.timepicker').timePicker({
      startTime: "02.00",  // Using string. Can take string or Date object.
      endTime: new Date(0, 0, 0, 15, 30, 0),  // Using Date object.
      show24Hours: false,
      separator:'.',
      step: 15
    });

У меня есть кто-то, кто нажимает кнопку, и новое поле ввода со средством выбора времени класса добавляется к странице, но средство выбора времени jQuery не работает... есть идеи, как связать...

я пробовал это

    $('.timepicker').bind('click', function(){
        $('.timepicker').timePicker({
          startTime: "02.00",  // Using string. Can take string or Date object.
          endTime: new Date(0, 0, 0, 15, 30, 0),  // Using Date object.
          show24Hours: false,
          separator:'.',
          step: 15
        });
    });

Но не сработало


person Matt Elhotiby    schedule 16.10.2011    source источник


Ответы (1)


Используйте живой -

$('.timepicker').live('click', function(){
    $(this).timePicker({
      startTime: "02.00",  // Using string. Can take string or Date object.
      endTime: new Date(0, 0, 0, 15, 30, 0),  // Using Date object.
      show24Hours: false,
      separator:'.',
      step: 15
    }).focus();
    $(this).removeClass('timepicker');
});

Демонстрация — http://jsfiddle.net/Spfpj/4/

person Jayendra    schedule 16.10.2011
comment
Это будет повторно применять плагин timepicker при каждом щелчке. Лучшим подходом было бы применить плагин при добавлении нового элемента в DOM. - person Phil Parsons; 16.10.2011
comment
ага. обработка добавления dom может быть одним из вариантов. Или вы можете просто удалить класс. Обновил ответ последним. - person Jayendra; 16.10.2011