Jquery datepicker在lightbox中不起作用

在一些问题解决后,我得到了一些棘手的东西。 我正在使用一个名为prettyPhoto的JQuery叠加插件。

只是想用表格做一个叠加。 表单隐藏了CSS,当点击链接时,叠加层以漂亮的方式显示它。

到目前为止一切都那么好,一切都按预期工作,只有一件事:这个表单有一个日期字段,我在其中使用datepicker UI。

它(datepicker)根本没有显示出来。 起初,我尝试使用谷歌搜索并进行一些CSS调整…没有任何作用。 CSS上的z-indexz-index动态…

然后我用Firebug来留意。 Datepicker通常在动态单击listener元素时设置其属性。 在叠加层内的此窗体上,当我单击侦听器字段时,datepicker div根本不会更改。

关于如何使这个工作的任何想法?

参考文献:网站是: http : //davedev.com.br/projects/jdc/v1/pt/reserva.php是的,它是葡萄牙语。 只需单击屏幕右下角的卡通对话框即可查看叠加层。

我正在使用谷歌apis CDN的jquery和jquery-ui。

我正在开发和测试Ubuntu,Firefox 3.6.7(Chrome 5和Opera 10.60)。

是的,我正在使用一些HTML5元素和一些CSS3效果(卡通对话气球完全用CSS3制作。没有图像。=])。

你的叠加插件’prettyPhoto’每次触发时都会创建一个新的DOM,因此,当你的灯箱中的DOM元素上不存在datepicker所包含的’焦点’事件。

这是一个有同样问题的人:

jQuery live()使用jQuery UI datepicker失败

你可能需要这样的东西:

 $('#overlayData').live('click', function (){ $(this).datepicker({dateFormat: 'dd/mm/yy'}); }); 

使用这里提出的解决方案,我设法使日期选择器在灯箱中显示/消失(prettyphoto)但仍然在选择日期时出现javascript错误(f为空)。

几个小时后,这是我的完整解决方案:

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

因为lightbox创建了一个带有div内容副本的新DOM,所以我们有2个输入具有相同的ID,导致datepicker无法正常工作,所以我所做的就是更改datepicker id。

希望能帮助到你!

在查看您的代码之后,这就是我找到的内容。

您似乎在弹出窗体上正确绑定了datepicker。 问题是,当你初始化prettyphoto时,绑定的日期选择器不再绑定。 如果您可以查看firebug并密切关注

,那就是您的表单所在的位置。 现在发生的是,当您打开/关闭弹出窗口时,表单将被删除或添加到DOM 。 那就是问题所在。

我能想到的一个解决方案是让你使用另一个叠加插件。

用lightbox doest不起作用。 这是因为灯箱总是强调自己。

 var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus; $.fn.modal.Constructor.prototype.enforceFocus = function() {}; $confModal.on('hidden', function() { $.fn.modal.Constructor.prototype.enforceFocus = enforceModalFocusFn; });