jquery为动态创建的对象分配插件

时间:2010-10-19 02:07:48

标签: jquery jquery-plugins

我有这个脚本

<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(),但是对于第二个等等,我需要再次分配.datepicker() 当它是动态创建的对象时

我可以只指定.datepicker() 一次吗?也许就像我们处理事件

时的.live()一样

谢谢

更新 得到答案,我使用livequery

所以脚本是

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

1 个答案:

答案 0 :(得分:0)

试试这个:

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