[英]reload jquery and js library
我使用updatepanel重新加载页面。 在我的母版页中,执行以下操作。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script src="App_Themes/Project/js/core.js"></script>
<script src="App_Themes/Project/js/libs/modernizr-1.6.min.js"></script>
当我用ajax(updatepanels)部分重新加载页面时,此文件将被加载。 因此无法使用滑块。
当我进行Ajax调用时,是否可以加载此文件?
您可以使用此功能:
function ReloadScripts() {
var scriptTag = document.getElementsByTagName('script');
var src;
for (var i = 0; i < scriptTag.length; i++) {
src = scriptTag[i].src;
scriptTag[i].parentNode.removeChild(scriptTag[i]);
try {
var x = document.createElement('script');
x.type = 'text/javascript';
x.src = src;
//console.log(x)
document.getElementsByTagName('head')[0].appendChild(x);
}
catch (e) {}
}
};
在ajax调用成功方法上,只需调用此函数
$.ajax({
type:"POST",
dataType: 'json',
error: function(data) {
//do error stuff
},
success: function(data) {
//do success stuff
// at last call this
ReloadScripts();
}
});
将所有初始化/重新初始化代码放在js函数调用pageLoad()
,在所有异步回发中都将调用它:
function pageLoad()
{
//do work
}
我认为您不需要重新加载js库,而是需要调用将某些属性应用于由ajax调用加载的某些元素的确切函数。
例如:
您的ajax将一些链接附加到页面上,例如
<a id="someLink">link</a>
在js库中的方法中,有一个代码将该元素着色为蓝色:
function colorBlue() {
$("a").css("color", "blue");
}
因此,这里您不需要重新加载整个库,只需在您的ajax调用之后调用此函数:
function makeAjax() {
//here some ajax method is executed
colorBlue();
}
就是这样,您所需的更改是在库方法中完成的。 PS:您可以通过在js库中搜索目标元素的类,标记名或ID来找到将特定工作应用于元素的方法。 那里你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.