javascript - 如何避免 JavaScript/jQuery 中的重复代码?

标签 javascript jquery

首先,有一点免责声明:我不是使用 javaScript/jQuery 的高手,尽管我已经处理过很多次了。最近,我有时发现自己被迫编写冗余代码,即针对不同事件重复代码行,因为我不知道如何以更有效的方式做到这一点。一个小例子是在检查页面中的任何复选框是否被选中后启用按钮。这是在页面加载时或选择任何复选框后完成的:

var checkboxes = $("input[type='checkbox']");

$('#nextfl').attr("disabled", !checkboxes.is(":checked"));

checkboxes.click(function()
{
    $('#nextfl').attr("disabled", !checkboxes.is(":checked"));
});

例如,我认为这不能使用 bindon 函数来解决,因为它引用与同一元素不相关的事件。我相信肯定存在一个简单的解决方案,但正如我之前所说,我对 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/

相关文章:

javascript - Parse.Query.or 内部错误 : does the query order matter?

javascript - farbtastic 插件回调函数

javascript - 无法从 jQuery 对象获取 innerHTML

javascript - 如何确保幻灯片表单中的点位于表单之后而不是位于标签和文本框上?

javascript - 表格不会提交

javascript - 设置 Mongoose 文档的排序顺序

javascript - 打开没有标签和其他菜单项并设置屏幕位置和大小的 Chrome 或 Firefox

javascript - 如何使用 javascript 在 InDesign GREP 查找/更改中将 $2 值存储到变量

javascript - 如何将属性添加到 img 标记以在 ajax 调用中使用

javascript - 由于 promise , Protractor 无法将变量与网络元素进行比较