我有一个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。我尝试在打开和关闭功能中更新图像但没有成功。有什么建议吗?
答案 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();
瞧......没问题!