好的,不确定find()
是否是正确的方法。我正在使用pretty photo,我正在加载一些内联内容。基本上,当漂亮的照片启动时,它会克隆内联定义的内容并将其显示在灯箱中。
这里的问题是我无法调用$("#myTextField").datepicker();
来激活文本框上的jQuery UI Datepicker。原因是它将它应用于我最初写的不可见的,而不是可见的克隆的。我之前使用内联内容中的Submit
按钮遇到了此问题,我使用$("#mySubmitButton").live('click',function().....
解析了
我尝试了$(this).find("#myTextField").next().datepicker();
,但没有骰子。还有其他建议吗?我不知道如何使用live()
方法。
答案 0 :(得分:1)
这是因为datepicker的事件未附加在任何克隆元素上。
您可以使用prettyPhoto方法changepicturecallback来绑定克隆元素上的datepicker。 (基于documentation)
$("a[rel^='prettyPhoto']").prettyPhoto({
changepicturecallback: function(){/* Called everytime an item is shown/changed */
$("#myTextField").unbind("datepicker"); // this will unbind previous binded event
$("#myTextField").datepicker(); // bind new event
}
});
或者,尝试在内联元素中添加$("#myTextField").datepicker();
。当然,在脚本标签中。当prettyPhoto启动时,它将绑定该事件。
答案 1 :(得分:1)
好吧我通过:Jquery datepicker does not work inside lightbox
想出来了$("#shoot_date").live("focus",function()
{
$(this).attr("id","datepickerNEWID");
$(this).datepicker();
});
答案 2 :(得分:0)
不要使用像“#myTextField”这样的id选择器,而应考虑使用像“.dateField”这样的类选择器。
在同一页面上使用相同ID的多个元素可能是您的麻烦源。
答案 3 :(得分:0)
如果您知道“漂亮照片”的HTML结构(您可以使用FireBug或任何其他开发人员工具找到它),那么您可以创建一个选择器,在“漂亮照片”元素中找到克隆元素:
$('#pretty-photo-id').find('input[type="text"]').datepicker();
这很可能不是针对您的情况进行优化的,但我所拥有的信息与我所获得的信息一样具体。