2011-08-06 2 views
8

Site.Masterページで$(document).ready()イベントを定義しましたが、別の$(document).ready()を部分ビューこれはmsgsとエラーmsgを表示するために使用されます)、私はこの部分的なビューをすべてのページとすべての部分的なビューで呼び出しています...Partial Viewでjquery readyイベントを定義しています

部分的なビューがページに表示されます。これにしようとしたが、部分図readyイベントは、私が聞いていくつか持っている

を発射されていません。

  • もみをt、それは私がしようとしていることを行うことが可能です...
  • ページがあるので、ページに2つの$(document).ready()イベントがありますので、ページが読み込まれると、 ...これら二つの事象間のいずれかの衝突があることである

、いくつかの体はいくつかの例WTH提供できるかどう...

+0

これらのパーシャルビューを読み込むために 'ajax'を使用しましたか? –

+0

yup私は部分的なビューを呼び出す/更新するときにajax.beginformまたはajax.actionlinkを使用しています... –

答えて

5

はい、あなたは、ページ上に複数のreadyイベントハンドラを含めることができます。サイトマスタ、部分的なビュー、およびビューページ自体に、必要な数だけ配置することができます。それらはすべてスクリプトタグで囲まなければなりません。彼らは、レンダリングされた最終ページに含まれる順番で発射します。パーシャルがページに1回だけ含まれていること、またはハンドラが複数回呼び出されても問題ではないことを確認することに注意してください。

例(完全ではない):

マスター:

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jqueryui.js"></script> 
<script type="text/javascript"> 
     $(function() { 
      // do something for whole page 
     }); 
</script> 

@Html.Partial("ErrorDialog") 

部分(ErrorDialog)

<div id="errorDialog" style="display: none;" title="Error"> 
    <p>An error occurred</p> 
</div> 
<script type="text/javascript"> 
     $(function() { 
      $('#errorDialog').dialog({ 
      modal: true, 
      autoOpen: false, 
      // more options 
      }); 
     }); 

     function showError(msg) { 
      $('#errorDialog').find('p').html(msg) 
          .stop() 
          .dialog('open'); 
     } 
</script> 
+1

複数の部分ビューがある場合、これは機能しません。オーダーの最初の部分ビューは、そのドキュメントをトリガーする準備ができましたが、2番目の部分は表示されません。 –

+2

@PinakinShah最初のものの何かが失敗していたり​​、(b)他のものが実行されないようにしなければ、それは当てはまりません。あなたはあなたが必要とする数を持つことができます。これはAJAX経由でロードされていても当てはまります。いくつかのモデルプロパティが存在するかどうかに基づいて独立して含まれる2つのセクションにコードを分割した場合、非常に似ているページがいくつかあります。魅力のように動作します。 – tvanfosson

4

はい、あなたはちょうどあなたが持っていることを確認してくださいページ内に複数の$(document).ready()を持つことが許可されていますこの関数を呼び出す前にjqueryファイルをインクルードしました。 Functionsが、$(document).ready()の内部で呼び出され、要求された順序で呼び出されます。

jQuery - multiple $(document).ready ...?

+0

私は試してみましたが、部分ビューの準備完了イベントは起動していません... –

+0

@ dvlpr:私はtvanfossonがそれを書いていると思う、それがうまくいかない問題を解決しないなら、私たちに知らせてください! –

1

うん、それは前の部分図に誤りがない限り、そうですあなたはあなたが望むように多くの$(document).ready()を持つことができ、それはすべての人のために発射されます。