我有一个标准的jQuery AJAX功能:为什么这个html不使用jQuery更新?
$.ajax({
// blah blah...
success: function(data)
{
if(data)
{
$('.title').text(data.title);
$('.description').text(data.description);
if (data.image)
{
$('div#image').html('<a href="'+data.image+'" class="button">View Image</a>');
}
}
}
});
服务器响应是一个JSON对象。 data.image
返回图片位置的网址。我只是坚持在一个链接,坚持在一个div内。
每次用户点击图库上的“下一个”或“上一个”按钮时,都会运行此ajax调用。问题是,第一次链接加载后,它保持缓存或什么,因为即使当我点击下一个或prev和其他一切更新如标题和描述,该链接不会更新。它总是指向第一个图像。
真正奇怪的是,如果我替换此:
$('div#image').html('<a href="'+data.image+'" class="button">View Image</a>');
有:
$('div#image').html(data.image);
它工作正常,一个新的URL每次Ajax调用运行加载。但是,如果我把它放在一些HTML中,那么它会加载一次并保持缓存或某物。
有谁知道为什么会发生这种情况?
我怀疑这是你的问题,但你不应该只将'data.image'连接到你的HTML字符串中。想一想如果'data.image'包含一个引号或其他任何在HTML中有特殊含义的字符会发生什么。相反,您可能希望设置不带'href'的HTML,然后找到创建的'a'元素并使用'attr'来设置'href'。 – icktoofay
你是否将一个事件监听器附加到'#image a'? – icktoofay