重新加载jquery和js库

时间:2012-12-29 10:33:38

标签: javascript jquery asp.net ajax 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)部分重新加载页面时,这些文件是nog加载的。所以滑块是不可能使用的。

在我进行Ajax调用时,有没有办法加载这些文件?

3 个答案:

答案 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 
}

$(document).ready() and pageLoad() are not the same!

答案 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来找到将特定工作应用于元素的方法。你在那里