2010-08-03 81 views
0

解決了一些問題後,我得到了一個棘手的問題。我正在爲jQuery使用名爲prettyPhoto的疊加插件。jquery datepicker不能在燈箱內工作

只是想與表格疊加。表單用CSS隱藏,點擊鏈接時,覆蓋圖以不錯的方式顯示。

到目前爲止好,一切按預期工作,但只有一兩件事:這個形式所具有的日期字段,其中我使用日期選擇器UI。

它(日期選擇器)完全沒有出現。起初,我嘗試了谷歌搜索和一些CSS調整......沒有任何工作。 z-index對CSS,z-index動態...

然後我用螢火蟲來保持眼睛。日期選擇器通常在偵聽器元素被動態單擊時設置其屬性。在疊加層中的這個表單上,當我單擊偵聽器字段時,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完全製造。沒有圖像。=])。

+0

解決 - 使用該解決方案指出在這裏:http://stackoverflow.com/questions/2386718/jquery-live-failing-with-jquery-ui-datepicker – Dave 2010-08-03 14:11:50

回答

1

你覆蓋插件「prettyPhoto」創建一個新的DOM每次被觸發,所以「專注」事件日期選擇爲界,不能在您的收藏夾DOM元素上存在。

這是一個人誰了同樣的問題:

jQuery live() failing with jQuery UI datepicker

你可能需要的東西是這樣的:

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

嘿,夥計們,我通過了你在這裏指出的問題上提出的解決方案。像魅力一樣工作。 Thx兄弟。 – Dave 2010-08-03 14:11:16

1

查看你的代碼後,這是我發現的。

看起來你已經在彈出窗體上正確綁定了datepicker。問題是,當你初始化美觀照片時,綁定的日期選擇器不再被綁定。如果你可以看看螢火蟲並仔細觀察<div id="pp_full_res"></div>,那就是你的表格。現在發生的事情是,當您打開/關閉彈出窗口時,窗體將被刪除或添加到DOM。那就是問題所在。

我能想到的一個解決方案就是讓您使用另一個覆蓋插件。

+0

是的,我想過改變插件,但因爲我打算將這個插件用於媒體畫廊,所以我寧願找到解決方案而不是堆疊越來越多的插件。 – Dave 2010-08-03 14:10:20

6

使用提出相應的解決辦法我設法讓日期選擇器在lightbox中出現/消失(prettyphoto),但在選擇日期時仍然出現javascript錯誤(f爲null)。

幾個小時後,這裏是我完整的解決方案:

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

由於收藏夾創建一個與DIV內容的拷貝一個新的DOM,我們則有2個輸入具有相同的ID,導致日期選擇器不工作,所以我做的是更改日期選擇器ID。

希望它有幫助!

+0

很奇怪的問題,你救了我的一天! – ownking 2011-10-27 08:30:07

+0

確實很奇怪。也許是一個錯誤?節省我的一天。謝謝! – 2012-03-02 22:47:08

0

與燈箱doest不工作​​。 這是因爲燈箱始終強調自己。

var enforceModalFocusFn = $.fn.modal.Constructor.prototype.enforceFocus; 

$.fn.modal.Constructor.prototype.enforceFocus = function() {}; 

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