繁体   English   中英

重新加载jQuery和js库

[英]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 
}

$(document).ready()和pageLoad()不一样!

我认为您不需要重新加载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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM