$('#in-view-contents').load("/browse/".concat(selectedId), function(responseData){
var contentsLabelEl = document.getElementById("refined-contents-container");
contentsLabelEl.style.display = "block";
var arrayOfReloadScripts = ["/js/rateable.js", "/js/siteWide.js", "/js/search/searchEvents.js"];
reloadScripts(arrayOfReloadScripts);
});
和reloadScripts只是遍历数组并调用此函数:
function reload_js(src) {
$('script[src="' + src + '"]').remove();
$('<script>').attr('src', src).appendTo('head');
}
这会导致jquery进行同步调用,如this中所解释的那么回答吗?如果不是,如何在加载html / server响应后重新运行我需要运行的一组函数?
编辑: 这是reloadScripts的代码:
var reloadScripts = function(array){
var len = array.length;
for (var i = 0; i < len; i++){
reload_js(array[i]);
}
}
答案 0 :(得分:0)
我删除了reload_js中的jquery代码并将其更改为以下内容:
function reload_js(src) {
var originalScript = document.querySelector('script[src="' + src + '"]');
var parentEl = originalScript.parentNode;
parentEl.removeChild(originalScript);
// $('script[src="' + src + '"]').remove();
var newScript = document.createElement('script');
newScript.src = src;
parentEl.appendChild(newScript);
// $('<script>').attr('src', src).appendTo('head');
}
我这样做是因为在评论中提到这可能是jquery中的一个错误。这样做之后,警告就消失了。