gpt4 book ai didi

jQuery 模式在 IE 中不更新

转载 作者:行者123 更新时间:2023-12-01 06:21:19 25 4
gpt4 key购买 nike

我无法让以下代码在 IE8 中运行,但在 Firefox 中运行良好。

用户单击链接将属性添加到其收藏夹列表中。单击时,我使用 jQuery 将页面加载到模式中。如果他们再次单击同一链接,则需要重新运行代码,以便它将显示“已添加”。在 IE 中,它只显示原始模式窗口,不会更新。

这太令人沮丧了...有人能帮我解决这个问题吗?

$(document).ready(function() {
var $loading = $('loading image goes here');

$('.add_fav_property').each(function() {
var $dialog = $('<div></div>')
.append($loading.clone());
var $link = $(this).bind('click', function() {

$dialog
.load($link.attr('href') )
.dialog({
title: $link.attr('title'),
width: 400,
height: 150
});

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

来自 http://blog.nemikor.com/2009/08/07/creating-dialogs-on-demand/ 的 jQuery 代码

谢谢,克里斯。

最佳答案

你有几个选择,这都是关于 IE 在这里缓存结果的。您可以使用$.ajaxSetup()不缓存任何 jquery AJAX 请求,如下所示:

$.ajaxSetup({ cache: false });

或者切换到完整的 $.ajax() .load() 的版本,像这样:

$.ajax({
cache: false,
url: $link.attr('href'),
dataType: 'html',
success: function(data) {
$dialog.html(data);
}
});

其中任何一个都会添加到您的查询字符串_=XXXXX,其中XXXXX部分是Date().getTime();。这会阻止浏览器使用缓存的结果,因为它认为您正在请求新页面。

第三种选择是自己做,尽管它看起来像是重复或工作,如下所示:

var href = $link.attr('href');
$dialog
.load(href + (/\?/.test(href) ? "&" : "?") + "_=" + (new Date()).getTime())
.dialog({
title: $link.attr('title'),
width: 400,
height: 150
});

关于jQuery 模式在 IE 中不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com