在AJAX页面中加载函数

时间:2013-04-24 13:29:28

标签: jquery ajax

我有一个页面(orderhistory),我们有一个“电子邮件”按钮,当被选中时,执行ajax请求并将ajax页面(emailform)加载到之前的“display:none”div。我希望能够将一个函数绑定到这个ajax页面上的某些东西上。

我意识到通过在ajax请求成功时绑定函数,我可以在orderhistory页面上完成这项工作。但是,在我们的网站上使用了相同的ajax页面,因此如果我可以将函数添加到ajax页面而不必编辑调用ajax页面的每个主机页面上的每个函数,这将节省大量时间。

我遇到的问题是没有事件可以触发该功能。我不能使用$(document).ready,因为ajax页面正被加载到已经准备好的文档上的div中。

我错过了什么吗?有一个简单的方法吗?希望我很清楚。

提前致谢。

<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文件),函数将绑定并触发警报。

3 个答案:

答案 0 :(得分:1)

不需要事件来触发该功能。只需直接在HTML代码段中的<script>标记内调用函数本身:

<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>

答案 1 :(得分:0)

您的电子邮件表单文件:

<script>
    $(function() {
      alert('LOADED!!!');
    });
</script>
<div>
<!-- form -->
</div>

答案 2 :(得分:0)

如果你正在使用jQuery,$.ajax函数有一个成功的回调,你可以使用它来调用这样的函数。