我使用更新面板重新加载页面。在我的主页中,我执行以下操作。
<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)部分重新加载页面时,这些文件是nog加载的。所以滑块是不可能使用的。
在我进行Ajax调用时,有没有办法加载这些文件?
答案 0 :(得分:1)
您可以使用此功能:
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();
}
});
答案 1 :(得分:0)
将所有初始化/重新初始化代码放入js函数调用pageLoad()
中,在所有异步回发中调用它:
function pageLoad()
{
//do work
}
答案 2 :(得分:0)
我认为您需要的是不重新加载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来找到将特定工作应用于元素的方法。你在那里