2013-12-13 2 views
1

У меня есть календарь, который не закрывается при выборе даты. Поэтому я нацелил класс (.day), чтобы закрыть календарь при нажатии. Однако, когда я снова открываю календарь и выбираю новую дату, он не закрывается второй раз. Я искал ответы на здесь и хотя подобные названия и вопросы, код не совсем то же самое ...jQuery скрыть только огни один раз

$('.day').click(function() { 
    $(".datepicker").hide(); 
}); 

<span class="input-append date dp-ticket" data-date="today" data-date-format="dd-mm-yyyy"> 
    <input type="text" class="add-on form-control col-xs-10 col-sm-10 col-md-10 col-lg-10" placeholder="Or, choose any date" name="startdate" id="startdate"> 
    <button class="add-on btn btn-search col-xs-2 col-sm-2 col-md-2 col-lg-2" type="button"> 
    <span class="icon-calendar"></span> 
    </button> 
</span> 
+0

Я не могу в состоянии видеть класс '.day', где он.? –

+1

Не могли бы вы создать скрипку? – tewathia

+1

Динамически добавляется '.day' в DOM? –

ответ

0

Попробуйте использовать дальше.

$('.day').on('click', function() { 
    $(".datepicker").hide(); 
}); 
+0

Это почти то же самое. Обе функции будут давать одинаковый результат. –

0

Извините, но я не вижу .day или .datepicker в примере кода, отличном от jQuery. Может быть, мне что-то не хватает .... lol

Я предполагаю, что скрипт регистрирует исходное событие hide, но не регистрирует, что .datepicker снова появляется при попытке изменить дату, так что, насколько сценарий знает, что он по-прежнему скрыт, когда вы меняете дату.

Вы можете попробовать положить .change(), чтобы обнаружить изменение значения поля даты (или там, где ваши размещения данные о дате.)

$(".foo").val().change(function() { 
    $(".datepicker").hide(); 
}); 

Вы, возможно, потребуется установить значение по умолчанию, но каждый раз, он будет изменен, он запустит функцию, чтобы скрыть .datepicker.

0

Я не уверен, как .day внедряется, поскольку вы не показываете его в своем коде, но поскольку он срабатывает только один раз, я думаю, что вы добавляете .day в DOM динамически.

Если это так, то вы можете сделать это:

$('SELECTOR_OF_PARENT').on('click', '.day', function(){ 
    $(".datepicker").hide(); 
}); 

Вы также можете сделать это, как этот

$(document).on('click', '.day', function(){ 
    $(".datepicker").hide(); 
}); 

Здесь больше информации для .on()

Смежные вопросы