4

当用户单击动态创建的按钮时,我试图显示日期选择器。我不想在那里显示文本框,所以我使用隐藏输入。

Javascript:

        function showDate(){
        var dateDiv = $('#dateDiv');
        for(ind=0; ind<=5; ind++){
            var date = $('<img src="calendar.png" class="datepicker" id="'+ind+'-date" /><input type="hidden" id="'+ind+'-date-picker" /><br />');
            dateDiv.append(date);
        }
    }

    window.onload = function(){
        showDate();
        $('.datepicker').live('click', function(){
            var datepickerId =$(this).attr('id');
            datepickerId += '-picker';
            $('#'+datepickerId).datepicker();
        });
    }

但是当我点击日历图标时没有任何反应。

HTML:

<body>
   <div id="dateDiv"></div>
</body>
4

2 回答 2

1

.datepicker()只需设置一个日期选择器。您可能在创建 div 时已经这样做了,而不是每次单击它时都这样做。

要显示它,您可以致电.datepicker('show');

于 2013-04-02T14:06:02.213 回答
0

不确定您使用的是哪个版本的 JQuery,但如果它是 1.7+ '.live()' 已被弃用,如果它是 1.9+ 它已被删除。关联

此外,我建议使用 document.ready 函数进行初始化。

function showDate(){
    var dateDiv = $('#dateDiv');
    for(ind=0; ind<=5; ind++){
         var date = $('<img src="calendar.png" class="datepicker" id="'+ind+'-date" /><input type="hidden" id="'+ind+'-date-picker" /><br />');
        dateDiv.append(date);
    }
}

$(document).ready( function(){
    showDate();

    $('.datepicker').on('click', function(){
        var $datepicker =$(this).attr('id');
        $datepicker += '-picker';
        $('#'+$datepicker).datepicker();
    });
});

这是上面的小提琴

于 2013-04-02T14:11:29.800 回答