[英]mockjax loader - stop from running for specific function
短版(带代码)
单击标题 - 动画
单击段落 - 无动画
$.ajax({
url: "/mockjax",
type: "GET",
global: false //This is the key
});
-
稍长的版本
$ .ajax()方法中有一个很好的变量可以让你停止ajax事件的触发(但不是ajax本身)。 这称为全球性 。 来自文档
全局 (默认值:true)
类型:布尔值
是否为此请求触发全局Ajax事件处理程序。 默认值为true。 设置为false以防止触发像ajaxStart或ajaxStop这样的全局处理程序。 这可用于控制各种Ajax事件。
考虑到这一点,我略微改变了你的代码,以展示我们如何使这项工作。
1)将AJAX调用移动到具有2个参数的函数中:URL和eventTrigger。 基本上我们希望URL为“/ mockajax”,并且eventTrigger为true或false(取决于是否以及何时显示动画)
2)我从$(文档)中取出了事件处理程序,并在标题标签和p标签中添加了2个事件,因此我可以使用相同的代码(1个带1和1个没有动画)演示AJAX在2个位置工作
希望这可以帮助!
您可以使用变量作为标志,表示您不显示加载程序的首选项。
//let say, showLoader, by default true
var showLoader = true;
现在,根据需要将其添加到您的ajax设置中。
$(document).on({
ajaxStart: function () {
// if showLoader true, then shows loading image
if (showLoader)
$body.addClass("loading");
},
ajaxStop: function () {
$body.removeClass("loading");
// set showLoader to true
showLoader = true;
}
});
根据您的要求更改showLoader
状态。
$(document).on("click", function (e) {
// if target element is anchor tag, then do not show loading image - example
if (e.target.tagName === 'A') {
showLoader = false;
}
$.get("/mockjax");
});
JSFiddle: http : //jsfiddle.net/VpDUG/5177/
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.