2012-02-08 117 views
1

我的項目中有多個jQuery文件。 昨天發現了這個問題並找到了解決辦法。我編輯這ajax asp.net和jQuery的衝突

$(document).ready(function() { 

與此

function pageLoad() { 

現在的問題是,如果我將在我所有的jQuery的文件,使用此。每個腳本都將停止工作。

+0

你怎麼知道存在衝突? JavaScript控制檯出現什麼錯誤? – Hawxby 2012-02-08 09:47:48

+0

我有jQuery幻燈片放映時。我在asp.net中使用ajax當我按下幻燈片顯示將隱藏(停止工作)這是錯誤:資源解釋爲其他,但與MIME類型未定義傳輸。 – 2012-02-08 09:58:28

+0

這聽起來不像jQuery衝突。看看螢火蟲網絡流量,這聽起來像是要求的東西不能正確返回。 – Hawxby 2012-02-08 14:01:21

回答

1

這是兩回事。

$(document).ready(function() { 

是來自和jquery,它告訴何時加載DOM,它開始執行裏面的代碼。

function pageLoad() { 

是ASP.NET,它是Application.Load(客戶端)

之所以會停止工作是處理程序之一,因爲在同一個頁面上你只能有一個具有相同名稱的事件,默認情況下,pageLoad將是Application.Load的處理程序,但您可以關聯另一個名稱。我不明白你們之間爲什麼會遇到問題,你能解釋一下嗎?

編輯: 您的評論後,如果你想/需要使用Sys.Application.add_load(默認pageLoad)你應該爲每個你需要的js文件添加一個不同的名稱。

從MSDN:

// Attach a handler to the load event. 
Sys.Application.add_load(applicationLoadHandler); 

function applicationLoadHandler() { 
    // Redirect to alternate page if not business hours. 
    var d = new Date(); 
    if (!(8 < d.getHours() < 17)) { 
     window.location = "AfterHours.aspx"; 
    } 

正如你所看到的,你可以給一個不同的名稱add_load,你應該給一個不同的名稱使用一個以上的在同一頁/請求。

}

+0

pageLoad只有一個jquery腳本文件效果很好。如果我將使用pageLoad更新兩個jquery文件。這兩個停止工作。我在asp.net中使用ajax時,當我按下幻燈片顯示將隱藏(停止工作) – 2012-02-08 10:02:15

+0

剛編輯我的答案。 – 2012-02-08 10:05:06

+0

謝謝。我不知道如何使用它你可以告訴我的方式或一些教程? – 2012-02-08 10:11:16

1

更換pageLoad像這樣的東西:

$(function() { 
    // This will be executed when the page is loaded 
}); 

或以避免名稱衝突...

(function($) { 
    // This will be executed when the page is loaded 
})(jQuery); 

編輯:作爲rich.okelly指出的第二個例子就溜跑當腳本被加載時。

+0

您的第二個示例將在腳本加載後立即執行,而不是在頁面加載完成時執行。 – 2012-02-08 09:48:32

+0

這是一個好點,謝謝 - 現在會更新。 – mdm 2012-02-08 09:49:09

+0

感謝mdm重播。我嘗試了他們兩個,但沒有幫助我 – 2012-02-08 10:02:59