AJAXコールバック後のASCXページ内の$(ドキュメント).ready
-
21-08-2019 - |
質問
私は、このセットアップで少し問題を抱えているここで私は.ascx
ファイルのリストを持っており、それらはすべて、コントローラ自体への計算の面でさまざまなタスクを実行します。だから私の.aspx
ページに私がAjax.ActionLink()
をクリックして、これは私がクリックした項目に基づいて、その特定の.ascx
ファイルをレンダリングします。その.ascx
内でそれらの2を起動します1-3イベントはonclick
イベントされており、1はonload
です。 onclick
イベント(複数可)のようなコントロールイベントで直接それをハードコーディングすることができ、私の観点で動作するように簡単ですので、onclick="$("#toggleMe3").slideToggle("slow");"
とonload
iは.ascx
呼び出しでこれをテストしていたロードされたときに実行する必要があります$(document).ready(function(){});
が、これはで正常に動作しますすぐに私はそれがこの作品が、私は考えていない理由を持っていないことをロードし、その理想的ではないん.aspx
ページにそれを追加してみて.aspx
ページけど。実際にスクリプトタグには何も私は.ascx
ページに直接挿入した場合、コントロールのイベント、少なくともそれらのもいくつかにハードコーディング場合、彼らは唯一の仕事に動作しません。 onload
とonprerender
は発生しません。
解決
私は、同じ問題を抱えていました。私はここで解決策を見つけた MSDN - PageRequestManagerクラスの
以下のようなスクリプトを追加する
問題が修正されたように見えます<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>
他のヒント
私は、XHRを経由してロードされます私のパーシャルで$(ドキュメント).readyを使用して成功を収めてきました。 JavaScriptの例外をスローXHRを経由して、あなたがロードしているビューはありますか?それとも、不正なHTMLが含まれていますか?
私は通常、私はAjaxを介して負荷というのが私の部分の底に私の$(ドキュメント).readyメソッドを持っている、のような...
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
私はあなたの質問を理解するのに苦労していた...しかし、ここでは行きます。
あなたはAJAXを使用して日付をロードする場合は、$(ドキュメント).ready()イベント発生しません呼び出す - ページがすでにロードされたので。あなたは今、より多くのデータをロードされます。
あなたはすでに事前にロードするJavaScript、つくれますどのようなコントロールを知っている場合は、代わりにクリックするだけのイベントハンドラを使用して結合する、ライブハンドラを使用します。
これ
$("#myControl").click(....);
タグに変身
$("#myControl").live("click", ....);
これはあなたが探していたものでない場合は申し訳ありません。