Средство выбора даты jQuery не работает должным образом с классом

Во-первых, средство выбора даты jQuery отлично работает с классами при загрузке новой страницы. Однако на моем сайте я загружаю весь контент через запросы Ajax. Изначально я присвоил каждому полю даты уникальный идентификатор, и при загрузке через ajax все работало нормально.

(Не работает через Ajax)

<script type='javascript'> jQuery(function() {jQuery('.datepickerclass').datepick({dateFormat: 'yyyy-mm-dd'});});</script>

<input class='Filter datepickerclass' type="text" name="start_date" value=""/>

(Работает через Ajax)

<script type='javascript'> jQuery(function() {jQuery('#start_date').datepick({dateFormat: 'yyyy-mm-dd'});});</script>
<input class='Filter date' type="text" id="start_date" name="start_date" value ="">

Я думаю, что по какой-то причине средство выбора даты не перепроверяет страницу (при использовании класса), когда вы перезагружаете часть содержимого и привязываетесь к новым элементам, но я не уверен, как это сделать?


person zbestzeus    schedule 18.05.2011    source источник
comment
К вашему сведению, вы также можете использовать $ вместо того, чтобы каждый раз писать jQuery.   -  person ThiefMaster    schedule 19.05.2011
comment
@ThiefMaster, если вы не используете какую-либо другую структуру (например, прототип), которая также определяет $   -  person ariel    schedule 19.05.2011
comment
Но поскольку он использует ярлык document.ready, он может использовать его в любом случае: jQuery(function($) { ... }); - обратный вызов получает jQuery в качестве первого аргумента.   -  person ThiefMaster    schedule 19.05.2011


Ответы (1)


Попробуйте немного таким образом. посмотрите, исчезнет ли проблема (при условии, что вы используете пользовательский интерфейс jQ):

$(function(){
    $('.datepickerclass').on('click', function() {
        $(this).datepicker({showOn:'focus'}).focus();
    });
});

Или поиграйте в том же духе, используя преимущества функции «живой» или «делегат». Надеюсь это поможет

person Ali Habibzadeh    schedule 18.05.2011
comment
Отлично, с небольшими изменениями у меня все заработало $('.datepickerclass').live('click', function() { $('.datepickerclass').datepick({dateFormat: 'yyyy-mm-dd'}); $(this).datepick({showOn:'focus'}).focus(); }); - person zbestzeus; 19.05.2011
comment
Я рад, что это помогло. Можете поставить галочку как правильный ответ :) - person Ali Habibzadeh; 19.05.2011
comment
$(document).on('click', '.datepicker', function() { $(this).datepicker({showOn:'focus'}).focus(); }); для jquery 1.10.* - person Harpreet Bhatia; 05.02.2014
comment
Почему мы должны это делать, когда документы JQUERY используют почти ВСЕ примеры классов? - person Mark Löwe; 03.08.2014
comment
Обратите внимание, что если вы окажетесь здесь, это будет 2015 год, и метод $.live устарел. - person Wes Johnson; 13.01.2015
comment
Спасибо, Уэс, изменил его на функцию. - person Ali Habibzadeh; 13.01.2015