2011-04-04 17 views
0

必須有一個簡單的解決方案,逃避我。不過,我對jquery很新,所以我相信這是問題的一部分。如何激活由ajax datepicker事件生成的選項卡窗口小部件中返回的jquery對話框?

我有一個datepicker實例,它通過ajax提交日期,並通過選項卡小部件返回xhtml。我試圖在那些返回的選項卡中創建對話框,以解釋可能返回的每種不同圖像產品是什麼。根據特定日期發生的成像事件的數量,可以返回任意數量的選項卡。每個或那些標籤都會有不同的圖像,但對圖像「類型」的解釋是相同的。我目前有大約9種不同的圖像「類型」,但這可能隨時改變,所以我應該靈活一些。例如,海面溫度圖像幾乎將出現在每個標籤中。一個clorophyll圖像將只在一天的時間事件返回。在不同的標籤(不同的圖片)中會有很多相同'類型'的圖片,但我只需要爲每個'類型'提供一個對話框解釋。

我目前使用頁面上的jquery對話框,但由於這些是在onLoad()上創建的,所以不存在這些問題。例如:

//對話框提示

$( '#dialog_tip')對話框({
的AutoOpen:假,
寬度:600,
按鈕:{
「確定」:()的函數{
$(this).dialog(「close」);
},
}
});

//對話框提示鏈接
$( '#dialog_tip_link')點擊(函數(){
$( '#dialog_tip')對話框( '開放');
返回FALSE;
});

我可以在寫入兩端時控制服務器端ajax請求的輸出。實際的原始xhtml文檔是以服務器端寫入的。分析分鐘日期maxDate會在最初運行服務器端腳本時進行分析,以確保存在有效的數據日期範圍。

這是該事件的當前內容,它工作正常。 。

$( '#日期選擇器')日期選擇器({
在線:真正的,
changeMonth:真正的,
changeYear:真正的,
的minDate: 「的minDate」,
的maxDate:「的maxDate
defaultDate: 「的maxDate
ONSELECT:功能(dateText,研究所){
//警報(dateText);
date = dateText;
$。AJAX({
數據類型: 「HTML」,
類型: 「POST」,
URL: 「HTTP:// HOST /的cgi-bin/IMAGE_DATA」
數據:「ROI = SITE &日期= 「+日期,
成功:功能(數據){
$(」 #pagetabs「)HTML(數據);
//找出多少標籤存在
last_tab = $('#標籤('#tab')。tabs({selected:last_tab});
screenshotPreview(); //完成以便我可以製作
// js爲較大的
工作//縮略圖彈出(工作)
// tab_dialogs();期待我要在這裏呼籲的東西
//初始化對話框
} // sucess
}); // AJAX
} //研究所
}); //日期選擇器

然而,我無法弄清楚如何有效地創建對話框,並隱藏然後打開。我知道我必須在datepicker事件中觸發它。問題是我不確定要把什麼放到上面引用的tab_dialogs函數中。我無法給某個類型的所有圖像提供與打破DOM相同的id。對話框小部件似乎使用輸入的id。

如「$(‘#dialog_tip_link’)。點擊(函數(){」

我可以給他們每個圖像類型中所有相同的類。我不希望有創建54個隱藏對話因爲理想情況下,每個圖像類型都會有一個類,希望我可以通過a.product_info(只是一個名稱)標籤來循環,以便使它工作。顯然,我不能不能說在onload有現有的JavaScript,因爲AJAX事件不會改變這一點。

任何想法大爲讚賞,我的是看似走了一天/周?

PS,下一步將標籤放入Accordion窗口小部件中,以便首先顯示日常圖像,然後合成圖像位於較低的手風琴風格部分。

回答

0

這有點適用於tab_dialog,除了現在我有幾個事件處理程序爲每個鏈接,所以必須考慮使用.one()莫名其妙嗎?

功能tab_dialogs(){

$( 「div.product_info a」)的每一個(函數(){
變種的className = $(本).attr( '類'); {
變種$ linkclassName =的className + '_link'; {
變量$ divlinkclassName = 「DIV」 +的className + '_link'; {

$($divlinkclassName).dialog({ 
autoOpen: false, 
width: 600, 
buttons: { 
    "Ok": function() { 
    $(this).dialog("close"); 
    }, 
} 
}); 


$(this).click(function(){ 
$($divlinkclassName).dialog('open'); 
return false; 
}); 

}); }

+0

沒有任何更改上述,當我日期選擇另一天,然後回到原來的日期,我必須按幾次關閉X或OK按鈕才能關閉它。 – brockwell 2011-04-05 18:47:17

+0

我以爲我可以$($ divlinkclassName)。對話框( 「消滅」);但不是。我有datepicker幾個其他的日期,並改變了$ divlinkclassName類的內容,舊的仍然存在。那是我在創造新作品之前不得不銷燬的那個。我無法刪除()該對話框,因爲這也刪除了最新的一個。 – brockwell 2011-04-05 19:14:54

+0

我向對話框div添加了一個名爲product_description的單獨類名,然後在返回新的product_description類div之前,在datepicker調用中繼續刪除它們。 \t //擺脫舊的對話框 \t $(「。product_description」)。remove(); – brockwell 2011-04-05 19:16:18

相關問題