2

我使用更新面板重新加载我的页面。在我的母版页中,我执行以下操作。

<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 调用时,有没有办法加载这些文件?

4

3 回答 3

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();
    }
});
于 2012-12-29T11:42:52.747 回答
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 来找到将特定工作应用于您的元素的方法。你在那里

于 2014-11-04T13:25:18.520 回答
0

将所有初始化/重新初始化代码放在 js 函数调用pageLoad()中,它会在所有异步回发中被调用:

function pageLoad()
{
    //do work 
}

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

于 2013-01-03T14:11:16.237 回答