2010-10-22 2 views
0

Вот моя проблема. Кажется, что datapicker не появляется при первом щелчке на динамически добавленном входе (я должен щелкнуть два или более раза на нем или лучше, если я нажму над вводом (область метки)), кто-нибудь видит проблему. Я пробовал много вариантов live(), bind() .hasDatapicker и # datep1. Если возможно, сначала проверьте свой ответ. Благодарю.Почему jquery datapicker непоследовательно появляется?

скрипт:

<script> 
$(document).ready(function(){ 
    var div_data='<div id="div_data" class="data"><br />'+ 
    'Dates from: <input type="text" id="datep1" size="10" name="data1">'+ 
    ' to: <input type="text" id="datep2" size="10" name="data2">&nbsp;&nbsp;(Optional fields)</div>'; 
    $("#rod_sem").after(div_data); 
    $(".br1").remove(); 
$(":input[name='pasirink']").click(function(){ 
    var currentId = $(this).attr("id"); 
    if (currentId == 'rod_sem') 
     { 
     $(".br1").remove(); 
     $(".data").remove(); // this is done to prevent repetitive additions 
     $("#rod_sem").after(div_data); // here comes datepicker input 

     $("#datep1").live("click", function() { 
      $("#datep1").datepicker(); 
     }) 

     } 

    }) 
}) 
</script> 

Html:

<label id="la_rod_sem" for="rod_sem">Seminars</label> 
<input type="radio" name="pasirink" id="rod_sem" value="rod_sem" checked="checked" /> 
<br class="br1" /> 
<br class="br1" /> 
<label id="la_rod_klaus" for="rod_klaus">Attendees</label> 
<input type="radio" name="pasirink" id="rod_klaus" value="rod_klaus" /> 
<br /> 
<br /> 
+0

'live' устарел довольно долго, используйте' on' вместо этого. Не то, чтобы в этом проблема. –

ответ

1

Попробуйте с jQuery LiveQuery plugin:

$("#datep1").livequery("click", function(event) { 
     $(this).datepicker(); 
    }); 
+0

Спасибо, и точка для lib, но результат тот же. –

0

Изменить эту часть:

$("#datep1").live("click", function() { 
     $("#datep1").datepicker(); 
    }) 

Для этого:

$("#datep1").datepicker(); 

DatePicker плагин активируется, когда вход щелкнул, так что вам не нужно обернуть это в случае щелчка.

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