4

私は、選択すると ajax リクエストを実行し、以前の「display:none」div に ajax ページ (emailform) をロードする「email」ボタンがあるページ (orderhistory) を持っています。この ajax ページの何かに関数をバインドできるようにしたいと考えています。

ajaxリクエストが成功したときに関数をバインドすることで、注文履歴ページでこれを機能させることができることがわかりました。ただし、この同じ ajax ページは Web サイト全体で使用されているため、関数を ajax ページに追加するだけで、ajax ページを呼び出す各ホスト ページで各関数を編集する必要がなければ、多くの時間を節約できます。 .

私が抱えている問題は、関数をトリガーするイベントがないことです。$(document).ready は使用できません。既に準備ができているドキュメントにある div に ajax ページが読み込まれているためです。

何か不足していますか?これを行う簡単な方法はありますか?うまくいけば、私は明確になっています。

前もって感謝します。

<script>
$(function(){
    alert('loaded')
    $('#EmailFrm_Sender').select2();
})
</script>

これが通話機能です。select2 関数のコメントを外すと、ajax ページで機能します。同じ関数を ajax ページに直接配置すると、読み込まれません。

$(".SOEmailLink").click(function(){
  $.get('/SAM/AJAX/BalloonEmailForm.asp', {FormKey:$(this).attr('Formkey'), FormName:('SalesOrder')}, function(data){
    hr_CenterBalloon(data);/*
    $('#EmailFrm_Sender').select2();*/
  })
});

シンプルなコードです。コメントで述べたように、このページを (適切なプラグイン リンクと jquery ファイルを使用して) 単独で実行すると、関数がバインドされ、アラートが発生します。

4

3 に答える 3

1

関数をトリガーするイベントは必要ありません。<script>関数自体への呼び出しを、HTML スニペットのタグ内に直接配置するだけです。

<div id="EmailFrm_Sender">
    your form content
</div>
<script>
    // common functions defined here
    ...

    // and then invoke stuff that needs to be run now
    $('#EmailFrm_Sender').select2();
</script>
于 2013-04-24T14:12:12.207 に答える
0

メールフォーム ファイル:

<script>
    $(function() {
      alert('LOADED!!!');
    });
</script>
<div>
<!-- form -->
</div>
于 2013-04-24T13:44:54.867 に答える