我有几个调用Ajax函数的按钮(提交联系表单,提交简报,检查用户是否有效/已注册,检查用户状态等等)
每次有人点击按钮以告诉他等待时,我都会使用ajaxSetup显示一个Loading对话框。这是我的代码:
$('#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?
由于
答案 0 :(得分:4)
执行此操作的一种快捷方法是向要显示加载程序的所有提交按钮添加一个类,并在单击其中任何一个时触发它。
$('#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'});
}
});
});