如何将datepicker附加到动态注入的元素?
我不能简单地做出类似的事情:
$(function(){
$('.date').datepicker();
})
因为在dom完成加载后,没有类型为'.date'的元素
我认为live()
也不会在这里工作
我在firebug $(".date").datepicker is not a function
修改:
这就是注入元素的方式
$('#typeId').change(function(){
$(this).nextAll().remove();
$(this).parent().append('<input type="hidden" name ="view_type" value="by_range"> <span>Start:</span> <input type="text" name="start_date" class="date"> <span>End:</span> <input type="text" name="end_date" class="date"> <input type="submit" value="Submit">');
})
答案 0 :(得分:0)
为什么不尝试创建一个在插入动态注入元素时调用的回调函数。回调可以为指定的选择器设置datepicker。
答案 1 :(得分:0)
如果您知道插入元素的时间,您可以在此之后立即执行.datepicker()。
答案 2 :(得分:0)
前段时间我使用Duplicate / Remove做了类似的东西,你可以在这里找到一个jQuery插件:http://www.trovster.com/lab/plugins/duplicate-remove/
在jquery.duplicate-remove.js的第60行之后:
$(this).find('input').focus();
您可以实例化jQuery datepicker:
$(this).find('.datepicker').datepicker();
然后,只需正常调用Duplicate / Remove。你还需要一个“初始”的datepicker实例作为选择器的第一个元素。
答案 3 :(得分:0)
Live Query确实解决了我的问题
$('.date').livequery(){
$(this).datepicker()
}
答案 4 :(得分:0)
尝试将代码修改为:
$('#typeId').change(function(){
$(this).nextAll().remove();
$(this).parent().append($('<input type="hidden" name ="view_type" value="by_range"> <span>Start:</span> <input type="text" name="start_date" class="date"> <span>End:</span> <input type="text" name="end_date" class="date"> <input type="submit" value="Submit">').find('.date').datepicker());
})