2010-10-22 6 views
0

Voici mon problème. Il semble que le datapicker n'apparaisse pas lorsqu'on clique la première fois sur l'entrée ajoutée dynamiquement (je dois cliquer deux fois ou plus dessus ou mieux si je clique au-dessus de l'entrée (zone d'étiquette), est-ce que quelqu'un voit le problème. J'ai essayé beaucoup de live(), bind() .hasDatapicker et # datep1 variantes. Si possible, testez votre réponse d'abord. Merci.Pourquoi jquery datapicker apparaît de manière incohérente?

côté script:

<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' a été déprécié pendant un certain temps, utilisez plutôt' on'. Pas que ce soit le problème ici. –

Répondre

1

Essayez avec jQuery LiveQuery plugin:

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

Merci et un point pour la lib, mais le résultat est le même. –

0

Modifier cette partie:

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

à ceci:

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

Le plugin datepicker est activé lorsque l'entrée est cliqué, de sorte que vous ne devez pas envelopper cela dans un événement de clic.

Questions connexes