我写了一个ajax调用:
$.ajax({
method: "POST",
//dataType: "json", //type of data
crossDomain: true, //localhost purposes
url: "./query/ins_desc.php", //Relative or absolute path to file.php file
success: function (response) {
console.log(JSON.parse(response));
var instructor = JSON.parse(response);
var el = "";
i = i - 1;
el += "<style>.insegnanti{vertical-align: bottom}</style><div class='insegnanti' id='i" + instructor[i].id + "'><img src='" + instructor[i].image + "'><div class='desc'><b><p style='font-size:20px'>" + instructor[i].name + " " + instructor[i].surname + "</b></p><br><br>" + instructor[i].description + "</div></div><div class='twitter'><a class='twitter-timeline' href='https://twitter.com/" + instructor[i].twitter + "' data-widget-id='" + instructor[i].twitter_id + "'>Tweet di @" + instructor[i].twitter + "</a></div>";
$(".contenitore-dinamico").html(el);
$(".contenitore-dinamico").fadeOut(1);
$(".contenitore-dinamico").fadeIn(3000);
!function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
},
error: function (request, error) {
console.log("Error");
}
});
其中!function(d,s,id){var js,fjs = d.getElementsByTagName(s)[0],p = / ^ http:/ .test(d.location)?&#39; http&# 39;:&#39; HTTPS&#39 ;; ...这是从Twitter获取的脚本,用于嵌入我的教师的时间表。
我的问题是:每次我点击一个老师都能很好地工作,但是当我改变教练时,脚本不会刷新(我认为)并且时间线不会出现。我该怎么办? 谢谢大家!
答案 0 :(得分:1)
尝试添加以下行:$('script#twitter-wjs').remove();
在调用twitter代码之前
!function(d,s,id)...
最终结果应为:
$.ajax({
method: "POST",
//dataType: "json", //type of data
crossDomain: true, //localhost purposes
url: "./query/ins_desc.php", //Relative or absolute path to file.php file
success: function (response) {
console.log(JSON.parse(response));
var instructor = JSON.parse(response);
var el = "";
i = i - 1;
el += "<style>.insegnanti{vertical-align: bottom}</style><div class='insegnanti' id='i" + instructor[i].id + "'><img src='" + instructor[i].image + "'><div class='desc'><b><p style='font-size:20px'>" + instructor[i].name + " " + instructor[i].surname + "</b></p><br><br>" + instructor[i].description + "</div></div><div class='twitter'><a class='twitter-timeline' href='https://twitter.com/" + instructor[i].twitter + "' data-widget-id='" + instructor[i].twitter_id + "'>Tweet di @" + instructor[i].twitter + "</a></div>";
$(".contenitore-dinamico").html(el);
$(".contenitore-dinamico").fadeOut(1);
$(".contenitore-dinamico").fadeIn(3000);
$('script#twitter-wjs').remove();
!function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0],
p = /^http:/.test(d.location) ? 'http' : 'https';
if (!d.getElementById(id)) {
js = d.createElement(s);
js.id = id;
js.src = p + "://platform.twitter.com/widgets.js";
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");
},
error: function (request, error) {
console.log("Error");
}
});
我在网站链接上进行了本地测试。并设置一个JSFiddle来演示代码在行动,显然模拟,因为我没有你的PHP脚本。由于您提取动态修改的代码并插入<a>
twitter锚标记,因此每次都会重新加载。此外,浏览器非常智能,可以从缓存中提取脚本。