jQuery ajaxStart和Stop Not Firing

时间:2013-10-06 08:32:57

标签: jquery

我的代码遇到了问题。我似乎无法让.ajaxStart工作。应该有一个简单的解决方案,我很感激您提供的任何帮助。我知道ajax正在工作,因为我有一个3秒睡眠的php文件,然后是我的成功函数正确显示的回声。

有什么想法吗?

这是我的javascript:

$(document).ready( function() {
        $('#loading').hide();

$("#email_form").ajaxStart(function() {
            alert('test');
            });
send_mail();
});

function send_email() {
            $("#email").click(function(e) {
                e.preventDefault();
                var student_id = $("#student_id").val();
                var email_type = $("#email_type").val();
                var message = $("#message").val();
                var dataString = 'student_id=' + student_id + '&email_type=' + email_type + '&message=' + message;
                var url = 'process/conference_email.php';
                $.ajax({
                    type:'POST',
                    data:dataString,
                    url:url,
                    success:function(data) {
                        toastr.success(data, 'Sent');
                        return false;
                    }
                });
            });
        }

1 个答案:

答案 0 :(得分:4)

来自docs

  

从jQuery 1.8开始,.ajaxStart()方法只应附加到文档。

这意味着您应该将处理程序绑定到document而不是:

$(document).ajaxStart(function() {
   alert('test');
});

jQuery将触发的ajaxStart事件将没有特定目标,因此您将无法将其绑定到#email_form元素。