我的代码就是这个
var checkForUnitReferred = function () {
$("#LeadForm").toggle($("#Claim_UnitReferredNoNull").is(":checked"));
};
checkForUnitReferred();
$("#Claim_UnitReferredNoNull").change(function() {
checkForUnitReferred();
});
它基本上检查是否选中了复选框并显示表单,否则会隐藏它。我宁愿拥有的是这样的东西
var checkForUnitReferred = (function() {
$("#LeadForm").toggle($("#Claim_UnitReferredNoNull").is(":checked"));
})();
$("#Claim_UnitReferredNoNull").change(function() {
checkForUnitReferred();
});
我知道这不行,但我认为这样的事情会更清晰。有人知道如何实现这个目标吗?
答案 0 :(得分:5)
这个怎么样:
var checkForUnitReferred;
(checkForUnitReferred = function() {
$("#LeadForm").toggle($("#Claim_UnitReferredNoNull").is(":checked"));
})();
$("#Claim_UnitReferredNoNull").change(function() {
checkForUnitReferred();
});
这是可能的,因为赋值(=
)运算符返回值集。
答案 1 :(得分:2)
直接命名函数,而不是创建一个匿名函数来赋值给变量。您也可以将此函数指定为.change()
处理程序,而无需额外的包装函数:
(function checkForUnitReferred() {
$("#LeadForm").toggle($("#Claim_UnitReferredNoNull").is(":checked"));
})();
$("#Claim_UnitReferredNoNull").change(checkForUnitReferred);