我从供应商那里继承了一些绝对令人难以置信的代码,并且在Javascript的相对新手和写的这种糟糕的方式之间,我已经设法用这个代码应该意味着我的整个办公室。有人可以通过将以下内容重写为嵌入式IF语句或更具可读性的内容来帮助我,这样我可以稍微修改一下代码流吗?
a("label.iClass").click(function () {
!0 == clickEnabled && (clickEnabled = !1, a(this).hasClass("iT_radio")
? a(this).hasClass("iTon")
? clickEnabled = !0
: e(a(this), !0)
: e(a(this)));
return !1;
}
clickEnabled
是供应商提供的自定义对象的属性。它是一个布尔值,最初定义为!0
。不,我不知道为什么他们决定否定整数比使用布尔值更好。
抛出最大循环的两个部分是在变量赋值之前的二进制AND,并且在赋值进入另一个函数调用之后直接放置逗号。关于这可能意味着什么的任何意见也将受到最高的赞赏。
答案 0 :(得分:3)
a("label.iClass").click(function () {
if (clickEnabled == true) {
clickEnabled = false;
if (a(this).hasClass("iT_radio"))
if (a(this).hasClass("iTon"))
clickEnabled = true;
else
e(a(this), true);
else
e(a(this)));
}
return false;
});
其中a
可能是jQuery
函数,e
是代码中的其他函数。
答案 1 :(得分:0)
!0 == clickEnabled && (clickEnabled = !1
部分似乎在说:如果clickEnabled,请禁用点击 - 阻止双击,可能。
, a(this).hasClass("iT_radio")
逗号应该被解释为一个列表,所以设置clickEnabled == false,它将执行下一个检查iT_radio存在的部分。
? a(this).hasClass("iTon")
如果存在iT_radio,则检查是否存在iTon。
? clickEnabled = !0
如果iT_radio和iTon存在,请重新启用单击
: e(a(this), !0)
如果存在iT_radio,但iTon不是e(a(this),true)。我不知道jquery,所以不确定e函数是什么。
: e(a(this)));
如果没有iT_radio,请执行此操作e(a(this))。再一次不知道函数e的目的。