我有几个按钮可以调用 Ajax 功能(提交联系表格、提交新闻通讯、检查用户是否有效/已注册、检查用户状态等...)

每次有人单击按钮以告诉他等待时,我都会使用 ajaxSetup 显示一个加载对话框。这是我的代码:

$('#submit').click(function(e) {
    // easily done but it's repetitive
    $('#loadingDiablog').css({'top':e.pageY+'px','left':e.pageX+'px'});
});


$.ajaxSetup({
    beforeSend: function(jqXHR, settings) {
        $('#loadingDiablog').css({'top':e.pageY+'px','left':e.pageX+'px'}); // e is not defined here
    }
});

因此,为了不重复相同的代码,如何将鼠标甚至(通过 .click(function(e) )传递给 AjaxSetup 中的 beforeSend ?

谢谢

最佳答案

一种快速的方法是向所有要显示加载器的提交按钮添加一个类,并在单击其中任何一个时触发它。

$('#submit .ajaxButton').click(function(e) {
    $('#loadingDiablog').css({'top':e.pageY+'px','left':e.pageX+'px'});
});

更新:
var myEvent;

$(document).ready(function()
{
    $('#submit').click(function(e) {
        myEvent = e;
    });

    $.ajaxSetup({
        beforeSend: function(jqXHR, settings) {
            if (myEvent != null) {
                $('#loadingDiablog').css({'top':myEvent.pageY+'px','left':myEvent.pageX+'px'});
            }
    });
});

关于jquery - 如何在Send之前将鼠标事件发送到ajaxSetup?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7610701/

10-11 22:00