Как мне динамически назначать идентификаторы для полей формы со слушателями событий?

Я разрешаю пользователю щелкнуть ссылку, которая добавит поле на страницу. Пользователь может щелкнуть ссылку, чтобы добавить на страницу столько полей, сколько ему нужно. При щелчке по полю появляется календарь, потому что это поле даты. Я использую календарь Any+Time. JQuery ожидает события click из поля с определенным идентификатором. Вот код:

$('#start_date').click(
        function(e) {
            $('#start_date').AnyTime_noPicker().AnyTime_picker().focus();
        } );

Идентификатор start_date. Проблема в том, что пользователь может щелкнуть ссылку, чтобы добавить новое поле с именем start_date, и, поскольку идентификатор совпадает, прослушиватель событий jQuery не может однозначно идентифицировать каждое поле. Есть ли известное решение для такого сценария?

1 ответ

Решение

Мне не ясно: добавление уникального номера вам не подходит? Если вы в порядке, создавая поле, но оно не прикрепляет обработчики кликов, попробуйте добавить class="pickerField" к элементам при их создании и измените ваш обработчик на:

$('.pickerField').click(
        function(e) {
            $(this).AnyTime_noPicker().AnyTime_picker().focus();
        } );

Я считаю, что должно работать с JQuery 1.7.2. Если по какой-то причине это не так, попробуйте следующее:

$('.pickerField').on('click',
        function(e) {
            $(this).AnyTime_noPicker().AnyTime_picker().focus();
        } );

Если вы используете более старую версию jQuery, попробуйте использовать live вместо on,

Другие вопросы по тегам