Files
2018-12-03 17:31:53 +08:00

146 lines
3.7 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
juqery ajax加载时屏蔽操作区 加入context
eg
$.ajax({
url: '/service/web/treasureHouse/showProduct',
dataType: 'json',
context:{maskId:'testArea'}
})
屏蔽 对话框中的按钮
$.ajax({
url: '/service/web/treasureHouse/showProduct',
dataType: 'json',
context: {
maskdialog: {
id: 'testDia',
button: ['btn-ok'],
}
}
})
**/
define(function(require, exports, module) {
/**
* ajax封装
* url 发送请求的地址
* data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}
* dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
* successfn 成功回调函数
* errorfn 失败回调函数
*/
$.extend({
ax: function(url, data, successfn, errorfn) {
//console.log(this);
//context: {
// maskId: this
// },
data = ($.type(data) != "object") ? {} : data;
$.ajax({
type: "get",
data: data,
url: url,
dataType: "json",
async: true,
cache: false,
//context: {
// maskId: this
//},
success: function(d) {
successfn && successfn(d);
},
error: function(e) {
errorfn && errorfn(e);
}
});
}
});
$.ajaxSetup({
beforeSend: function() {
if (this.maskId && typeof(this.maskId) == 'string') {
addMask(document.getElementById(this.maskId));
}
if (this.maskId && typeof(this.maskId) == 'object') {
addMask(this.maskId);
}
if (this.maskdialog && typeof(this.maskdialog) == 'object') {
disableDialogButton(this.maskdialog);
}
},
complete: function() {
if (this.maskId && typeof(this.maskId) == 'string') {
removeMask(document.getElementById(this.maskId));
}
if (this.maskId && typeof(this.maskId) == 'object') {
removeMask(this.maskId);
}
if (this.maskdialog && typeof(this.maskdialog) == 'object') {
removeDisable(this.maskdialog);
}
},
error: function() {}
});
function disableDialogButton(options) {
require.async('./dialog/dialog', function(dialog) {
for (var i = 0; i < options.button.length; i++) {
dialog.get(options.id)._popup.find('[data-id=' + options.button[i] + ']').attr('disabled', 'true');
}
});
}
function removeDisable(options) {
require.async('./dialog/dialog', function(dialog) {
for (var i = 0; i < options.button.length; i++) {
dialog.get(options.id)._popup.find('[data-id=' + options.button[i] + ']').removeAttr('disabled');
}
});
}
function addMask(domElement) {
if (!domElement) {
return;
}
// find X/Y position of domElement
var $div = $('#ajaxmask');
if ($div.length == 0) {
$div = document.createElement('div');
$div.id = 'ajaxmask';
with($div.style) {
position = 'absolute';
//left = '' + $(domElement) + 'px';
//top = '' + box.top + 'px';
//width = '' + $(domElement).outerWidth() + 'px';
//height = '' + $(domElement).outerHeight() + 'px';
zIndex = 1999;
filter = 'alpha(opacity=80)';
opacity = 0.8;
backgroundColor = '#fff';
backgroundImage = 'url(http://hd.vip.yy.com/activity/images/ajax_loading.gif)';
backgroundRepeat = 'no-repeat';
backgroundPosition = 'center center';
}
$($div).appendTo('body');
}
var obj = $(domElement);
var h = obj.outerHeight();
$($div).css('line-height', h + 'px').width(obj.outerWidth()).height(h).show().offset(obj.offset());
}
function removeMask(elem) {
$('#ajaxmask').hide()
}
});