2012-12-29 21 views
2

我使用updatepanel重新加載我的頁面。在我的母版頁中,我執行以下操作。重新加載jQuery和js庫

<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

請離開fiddle.its中的實際代碼不清楚你的問題你實際需要什麼.. – Codegiant

+0

這是我的主頁上的首代碼。但是,因爲我不重新加載我的masterpage,此代碼不會重新加載。 –

回答

0

您可以使用此功能:

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(); 
    } 
}); 
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來找到哪些方法將特定工作應用於元素。在那裏你