【问题标题】:reload jquery and js library重新加载 jquery 和 js 库
【发布时间】:2012-12-29 10:33:37
【问题描述】:

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

<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 调用时加载这些文件?

【问题讨论】:

  • 请将实际代码留在小提琴中。您的问题不清楚您真正需要什么..
  • 这是我母版页的头代码。但是因为我没有重新加载我的母版页,所以这段代码没有重新加载。

标签: javascript jquery asp.net ajax updatepanel


【解决方案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();
    }
});

【讨论】:

    【解决方案2】:

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

    function pageLoad()
    {
        //do work 
    }
    

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

    【讨论】:

      【解决方案3】:

      我认为您需要的不是重新加载 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 来找到将特定工作应用于您的元素的方法。给你

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-29
        • 1970-01-01
        • 1970-01-01
        • 2011-02-16
        • 2012-11-06
        • 2012-01-02
        • 1970-01-01
        • 2010-10-27
        相关资源
        最近更新 更多