刷新jquery对话框中的图像

时间:2010-02-11 23:22:14

标签: jquery image dialog refresh

我有一个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');
}

只要div不在对话框中,我就可以更新任何“img”标签。但是,由于这个,img不会更新。该对话框似乎没有被破坏,因为它打开了immediatley。我尝试在打开和关闭功能中更新图像但没有成功。有什么建议吗?

2 个答案:

答案 0 :(得分:3)

尝试将这两行移动到open回调函数中:

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

这将确保元素容器实际存在。

另外,now.getTime()代替(+new Date()),您可以尝试使用{{1}}。

答案 1 :(得分:-1)

所以我想出了问题所在。具有讽刺意味的是,它确实与日期有关。我在函数之外声明变量“now”,因此,日期实际上并没有改变。

所以我将行改为

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

瞧......没问题!