我正在基于主体类中的特定类运行 json 调用,以帮助减少各个页面上不必要的调用。
例如:
$(function () {
if ($('body.CLASSNAME1').length == 1) {
//JSON call
});
});
$(function () {
if ($('body.CLASSNAME2').length == 1) {
//A Different JSON call
});
});
为了解决这个问题,我想要一个函数并根据给定的类名执行内部函数。我正在考虑一个 switch 语句,但无法理解逻辑,我从 $.hasClass('')
开始,但无法找出任何其他基于的读取和执行方式唯一的类名。
最佳答案
只需创建一个对象,将类名称映射到调用各种 XHR 调用的函数,然后枚举该对象,测试每个类名称,并在 body
具有该类时调用该函数。
$(function(){
// Map your keys (class names) to your JSON calls
var classes = {
CLASSNAME1: function() {
// JSON call
}
CLASSNAME2: function() {
// A Different JSON call
}
};
// enumerate the object, calling the related function for each found class
$.each(classes, function(key, func) {
if ($("body").hasClass(key))
func();
})
});
<小时/>
或者,如果不需要额外的逻辑,您可以使用 $.proxy
简单地绑定(bind) XHR 参数:
var classes = {
CLASSNAME1: $.proxy($, "ajax", {...parameters...})
CLASSNAME2: $.proxy($, "ajax", {...parameters...})
};
关于javascript - 检查特定类来执行 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16657528/