まあ-私はjQueryでASP.NET MVCを使用しています。私はアプリケーションのこの部分に部分ビュー (ascx) を使用していません。代わりに、完全なビューを歌っていますが、それらを div にロードしています。したがって、この「タイプ」のビューのクライアント側のロジックであるjsファイルへの参照を含むヘッドを持つメインビューがあります。このビューのいくつかのタブをクリックすると、jquery タブを使用して別のビューをいくつかの div に「ロード」します。このプラグインを使用してタブをロードする方法は、単純に URL を指定することです (指摘されたように、ready に依存するのではなく、コールバック関数を追加できるロードを使用するのではなく)。
でも。ビューは別のビューを URL でロードできるはずなので、すべてのクライアント ロジックを親ビューに配置したくありません (サブ ビューには、ロード時にフォーマット/フックアップするすべてのロジックを含む関連する js ファイルへのリンクが含まれます)。
今私が本当に混乱しているのは、ある状況では機能しているように見えて、他の状況では機能していないように見えるということです。たとえば、1) 親ビューが IE のフレームで開かれている場合、サブビューの準備がトリガーされることはありません 2) IE で同じ URL を直接開いている場合、サブビューの準備がトリガーされます 3) FFX2 で同じ URL を開くと、 ready every はトリガーされません 4) 最終的に.. しかし、FFX2 でこの親のサブビュー (サブビューを持つ) を開くと、子の Ready イベントがトリガーされます!.. 不可解です..
いくつかのテストを実行して返信しますが、この動作が異なる理由についての提案は大歓迎です
更新: Ah ha!.. 上記のハードルがクリアされていても、ブラウザーの違いがあるように見えます (明らかに上記を読んだことから).. 以下の簡単なテストは IE7 では正常に動作しますが、FFX2 では失敗します。Test2.htm を Test1.htm にロードすると、準備完了イベントが IE でトリガーされますが、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>