使用jQuery find获取下一个或活动元素

quhf5bfb  于 2023-06-22  发布在  jQuery
关注(0)|答案(4)|浏览(133)

好吧,不确定find()是否是正确的方法。我正在使用pretty photo,我正在加载一些内联内容。基本上,当pretty photo启动时,它会复制内联定义的内容并将其显示在lightbox中。
这里的问题是我不能调用$("#myTextField").datepicker();来激活文本框上的jQuery UI Datepicker。原因是它将其应用于我最初编写的不可见的,而不是可见的克隆。我以前在内联内容中使用Submit按钮时遇到过这个问题,我使用$("#mySubmitButton").live('click',function().....解决了这个问题
我试了$(this).find("#myTextField").next().datepicker();,但没有骰子。还有其他建议吗?我不知道还有什么方法可以使用live()方法。

j2cgzkjk

j2cgzkjk1#

这是因为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启动时,它将绑定该事件。

wz8daaqr

wz8daaqr2#

好吧,我通过以下方式弄明白了:Jquery datepicker does not work inside lightbox

$("#shoot_date").live("focus",function()
{
    $(this).attr("id","datepickerNEWID");                 
    $(this).datepicker();
});
vxbzzdmp

vxbzzdmp3#

不要使用像“#myTextField”这样的id选择器,而是考虑使用像“.dateField”这样的类选择器。
在同一个页面上有多个具有相同id的元素可能是问题的根源。

syqv5f0l

syqv5f0l4#

如果你知道“Pretty Photo”的HTML结构(你可以使用FireBug或任何其他开发工具找到它),那么你可以创建一个选择器,在“Pretty Photo”元素中找到克隆的元素:

$('#pretty-photo-id').find('input[type="text"]').datepicker();

这是最有可能不是优化为您的情况,但与信息,我有这是关于具体的,因为我可以得到。

相关问题