首先,有一点免责声明:我不是使用 javaScript/jQuery 的高手,尽管我已经处理过很多次了。最近,我有时发现自己被迫编写冗余代码,即针对不同事件重复代码行,因为我不知道如何以更有效的方式做到这一点。一个小例子是在检查页面中的任何复选框是否被选中后启用按钮。这是在页面加载时或选择任何复选框后完成的:
var checkboxes = $("input[type='checkbox']");
$('#nextfl').attr("disabled", !checkboxes.is(":checked"));
checkboxes.click(function()
{
$('#nextfl').attr("disabled", !checkboxes.is(":checked"));
});
例如,我认为这不能使用 bind
或 on
函数来解决,因为它引用与同一元素不相关的事件。我相信肯定存在一个简单的解决方案,但正如我之前所说,我对 JS/jQ 的经验很少,并且有一些类似的情况,我重复了几十行代码,这当然至少是不好的做法。
最佳答案
您始终可以使用 javascript 将冗余代码拆分为函数:
function doCheckboxLogic () {
$('#nextfl').attr("disabled", !checkboxes.is(":checked"));
// and any other logic that needs to be done
}
然后您调用该函数来代替冗余代码块:
checkboxes.click(function()
{
doCheckboxLogic();
});
这里没有太多收获,因为它只是一行代码,但这确实有助于封装更复杂的逻辑 block
关于javascript - 如何避免 JavaScript/jQuery 中的重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359075/