2010-10-19 53 views
0

我有此脚本的jQuery插件分配给动态创建的对象

<input type="Button" class="button-calendar" value="add"> 
<ol class="ol-calendar"> 
    <li><input type="Text" class="text-calendar" name="calendar_1" id="calendar_1"></li> 
</ol> 

<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="../js/jquery-ui-1.8.2.custom.min.js"></script> 
<link rel="stylesheet" type="text/css" href="../css/smoothness/jquery-ui-1.8.2.custom.css"> 

<script> 
$(document).ready(function() { 
    $('.text-calendar').datepicker(); 

    $('.button-calendar').click(function() { 
     $('.ol-calendar') 
      .append('<li></li>'); 

     $('.ol-calendar') 
      .children(':last') 
      .append('<input type="Text" class="text-calendar" name="calendar_' + $('.ol-calendar').children().length + '" id="calendar_' + $('.ol-calendar').children().length + '"'); 

     $('.ol-calendar') 
      .children(':last') 
      .children('.text-calendar') 
      .datepicker(); 
    }); 
}); 
</script> 

看到.datepicker()。对于第一个文本日历,可以很容易地将其分配给.datepicker(),但对于第2和等等,我需要分配一个.datepicker()再次当它是一个动态创建的对象

我可以分配.datepicker()只有一次?也许它就像.live()当我们处理事件

谢谢

更新 得到了答案,我用livequery

所以脚本

$('.text-calendar').livequery(function() { 
    $(this).datepicker(); 
}); 

回答

0

试试这个:

$('.text-calendar:not(.hasDatepicker)').live('focus', function(){ 
    $(this).datepicker(); 
});