4

I have a page (orderhistory) where we have an "email" button that, when selected, performs an ajax request and loads an ajax page (emailform) onto a previously "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 文件),函数会绑定并触发警报。

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 回答
0

如果您使用 jQuery,该$.ajax函数有一个成功回调,您可以使用它来调用类似的函数。

于 2013-04-24T14:20:14.860 回答