Использование jQuery Я пытаюсь добавить обработчик события datepicker к элементу ввода.Добавление обработчика событий datepicker несколько раз
<div id="Box_tmpl" style="border:solid 1px #777; background:#ddd; display: none;">
<a class="remove-box" href="#">remove</a>
<div>
<label for="PeriodStart">Period (start):</label>
<input id="PeriodStart" class="start-end-date" name="period_start" readonly="readonly" />
</div>
<div>
<label for="PeriodEnd">Period (end):</label>
<input id="PeriodEnd" class="start-end-date" name="period_end" readonly="readonly" />
</div>
</div>
<a class="add-box" href="#" style="margin: 6px 0 10px auto;">add</a>
<div id="Boxes">
<div style="border:solid 1px #777; background:#ddd;">
<a class="remove-box" href="#">remove</a>
<div>
<label for="PeriodStart">Period (start):</label>
<input id="PeriodStart" class="start-end-date" name="period_start" readonly="readonly" />
</div>
<div>
<label for="PeriodEnd">Period (end):</label>
<input id="PeriodEnd" class="start-end-date" name="period_end" readonly="readonly" />
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
$('.start-end-date').datepicker({ dateFormat: "yy-mm-dd" });
$('.remove-box').click(function(){
$(this).parent().remove();
});
$('.add-box').click(function(){
$('#Box_tmpl').clone().removeAttr('id').show().appendTo('#Boxes');
$('.start-end-date').datepicker({ dateFormat: "yy-mm-dd" });
$('.remove-box').click(function(){
$(this).parent().remove();
});
return false;
});
});
</script>
Добавление новой коробки работает. Добавление обработчика событий удаления в новом поле. Добавление обработчика события datepicker с новым полем НЕ РАБОТАЕТ. Я не понимаю, почему ... Создание нового элемента с помощью $(). Clone() ли новый элемент наследует обработчики событий старого элемента? Если это произойдет, может быть моя проблема добавления обработчик событий Datepicker несколько раз к одному элементу ... Я бегу из идей
Делегирование более полезно, чем клонирование. Проверьте мой ответ :) – Starx
он спросил о клоне и связанных событиях. На этом я и сосредоточился. Вы правы, указав, что есть лучшие способы решить эту проблему. – StilgarBF
Thanx StilgarBF! Параметр «true» решает мою проблему. Но что, если я не хочу копировать обработчики событий? Что делать, если я хочу добавить новые обработчики событий? Особенно датпикер ... Датчик даты [demo] (http://jsfiddle.net/XVHqJ/) не работает ... Любые идеи почему? – esviko