2010-02-11 186 views
1

我有一個通過鏈接打開的jquery對話框。我希望它每次打開對話框時都會刷新圖像。在jquery對話框中刷新圖像

我想是這樣的:

function open_dialog() { 
    $("#imageThumbBox").dialog('destroy'); 
    $("#imageThumbBox").dialog({ 
    autoOpen: false, 
    closeOnEscape: true, 
    resizable: true, 
    height: 'auto', 
    width: 'auto', 
    buttons: { 
     Cancel: function() { 
     $(this).dialog('destroy'); 
     } 
    }, 
    close: function() { 
     $(this).dialog('destroy'); 
    }, 
    open: function() { 
    } 
    }); 
    var img = db_cgi_url + "/photo.cgi?do=view;ID=" + ID + ";" + now.getTime(); 
    $("#my_image").attr("src", img); 
    $("#imageThumbBox").dialog('open'); 
} 

只要股利不位於一個對話框,我可以更新任何「IMG」標籤罰款。但是,因爲這一個,img不會更新。該對話框似乎不會被破壞,因爲它打開了immediatley。我試圖在打開和關閉功能中更新圖像,但沒有成功。任何建議?

回答

-1

所以我想出了問題。具有諷刺意味的是,它確實與日期有關。我在函數之外聲明變量「now」,因此日期實際上並沒有改變。

所以我改變了行

var img = db_cgi_url + "/photo.cgi?do=view;ID=" + ID + ";" + new Date().getTime(); 

,瞧......沒有問題!

+1

這並不意味着如果你做了我的建議,它會起作用嗎? – 2010-02-17 05:01:22

+0

不,它不會,因爲如果你真的讀到我原來的信息,你會發現我已經試圖把這兩行放在打開和關閉函數中,但沒有成功。問題不在於我放置了兩條線,而是放置了時間函數。 – Jonathan 2010-02-19 20:06:14

3

嘗試這兩條線移動到open回調函數:

var img = db_cgi_url + "/photo.cgi?do=view;ID=" + ID + ";" + now.getTime(); 
$("#my_image").attr("src", img); 

,將確保該元素的容器確實存在。

而不是now.getTime()你可能會嘗試(+new Date())只爲踢。

+0

我試過沒有成功。它不會重新加載對話框。就好像該對話框一旦被初始加載後就不能被銷燬或重新加載。 順便說一句我有「var now = new Date();」在我的代碼頂部 – Jonathan 2010-02-11 23:51:12

相關問題