このセットアップで少し問題があります。.ascx
ファイルのリストがあり、それらはすべてコントローラー自体への計算に関して異なるタスクを実行します。したがって、私の.aspx
ページで をクリックすると、クリックした項目に基づいてAjax.ActionLink()
その特定のファイルがレンダリングされます。.ascx
その中.ascx
に 1 ~ 3 個のイベントがあり、そのうちの 2 つはonclick
イベントで、1 つはonload
です。イベントはonclick
、コントロールイベントで直接ハードコーディングできるという点で作業が簡単で、ロードされたときに実行する必要がありますonclick="$("#toggleMe3").slideToggle("slow");"
。呼び出しでこれをテストしていましたが、これはページで正常に動作しますが、すぐにに追加してみますonload
.ascx
$(document).ready(function(){});
.aspx
.aspx
ページが読み込まれず、これが機能するのが理想的ですが、なぜ機能しないのかわかりません。実際、ページに直接挿入すると、スクリプトタグの何も機能しません。.ascx
コントロールのイベントにハードコードされている場合にのみ機能します。少なくともそれらのいくつかはそうです。と発火しないonload
でください。onprerender
3 に答える
$(document).readyで指定された部分的なポストバックスクリプトが実行されなかった後、同じ問題が発生しました。ここで解決策を見つけましたMSDN-PageRequestManagerクラス
以下のようなスクリプトを追加すると問題が解決するようです
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>
あなたの質問を理解するのに苦労しました...しかし、これで終わりです。
AJAX 呼び出しを使用して日付を読み込んでいる場合、ページが既に読み込まれているため、$(document).ready() イベントは発生しません。現在、より多くのデータをロードしています。
表示されるコントロールが既にわかっている場合は、JavaScript をプリロードしますが、クリック イベント ハンドラーを使用してバインドするだけでなく、ライブ ハンドラーを使用します。
それで
$("#myControl").click(....);
になる
$("#myControl").live("click", ....);
これがあなたが探していたものではない場合は申し訳ありません。
XHR 経由でロードされるパーシャルで $(document).ready を使用して成功しました。JavaScript 例外をスローする XHR 経由で読み込んでいるビューですか? それとも、不正な HTML が含まれていますか?
私は通常、Ajax 経由でロードするパーシャルの下部に $(document).ready メソッドを持っています。
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>