嗯 - 我使用ASP.NET MVC使用jQuery。我不是使用部分視圖(ascx)的這部分應用程序,而是我唱全視圖,但將它們加載到div。所以我有一個主視圖,頭部帶有一個對這個「類型」視圖的客戶端邏輯的js文件的引用。當點擊這個視圖上的一些標籤時,我們使用jquery選項卡將antoher視圖加載到某個div中。使用這個插件加載標籤的方式是簡單地給一個url(而不是使用加載 - 正如我指出的那樣 - 我可以添加一個回調函數而不是依賴就緒)。
但是,我不希望所有的客戶端邏輯都在某些父視圖中,因爲任何視圖都應該能夠通過url加載另一個視圖(子視圖包含指向其相關js文件的鏈接,其中包含加載時格式化/連接的所有邏輯)。
現在我真的很困惑的是,它似乎在某些情況下工作,而不是在其他情況下工作;例如1)當在IE中的一個框架中打開父視圖時,從屬觸發器從不被觸發2)當在IE中直接打開相同的URL時,子視圖被讀取器觸發3)當在FFX2中打開相同的URL時準備好每一個都不會觸發4)最後..但是當在FFX2中打開這個父視圖的子視圖(它具有子視圖)時,子觸發器準備好了!..令人困惑的..
我要運行一些測試n回到ya,關於爲什麼這種行爲可能會有所不同的建議,將不勝感激
更新:啊哈!..看起來像甚至與上述障礙清除,有瀏覽器的差異(顯然從上面的閱讀)..下面的簡單測試工程在IE7罰款,但在FFX2失敗。就緒事件在IE中觸發,但在將Test2.htm加載到Test1.htm時不會觸發FFX。根據我的經驗,我知道這意味着IE有一個「怪癖」,FFX正如你所期望的那樣基於W3C。所以它看起來像這樣的做法是不,不,除非任何人有任何建議?:
Test1.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" language="javascript" src="Scripts/jquery-1.3.2.js"> </script>
<script type="text/javascript" language="javascript">
<!--
$(document).ready(function() {
alert("Test1.htm");
$("#Test1").load("Test2.htm");
});
//-->
</script>
</head>
<body>
<h3>SOME TEST</h3>
<div id="Test1">EMPTY</div>
</body>
</html>
Test2.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" language="javascript" src="Scripts/jquery-1.3.2.js"> </script>
<script type="text/javascript" language="javascript">
<!--
$(document).ready(function() {
alert("Test2.htm");
//$("#Test1").load("Test3.htm"); // load more
});
//-->
</script>
</head>
<body>
<h3>SOME TEST</h3>
<div id="Test2">EMPTY</div>
</body>
</html>
這是MS阿賈克斯,不是jQuery的,並通過'PageRequestManager'判斷我敢肯定它僅適用於ASP.NET WebForms的。 – Aaronaught 2011-09-16 15:46:40
瞭解,但如果你看AH先生提供的答案,他表示他使用ASP.NET。我提供了一種彌補.NET部分頁面加載的差距,解決他想要的任何JS函數(jQuery就緒事件或其他)的方式。 – 2011-09-16 16:28:10