javascript - 如何美化/重构这段JavaScript代码?

标签 javascript

之前我有关于美化js代码的问题询问in this link ,但是这次我不确定如何美化下面的代码,因为我使用单词而不是索引号。( bolt 词是它与我之前的问题不一样的原因)

原始JS代码

//food
$("#food_east").keyup(function () 
{
    samefunction();
});

$("#food_west").keyup(function () 
{
    samefunction();
});

$("#food_north").keyup(function () 
{
    samefunction();
});

$("#food_south").keyup(function () 
{
    samefunction();
});

//beverage
$("#beverage_east").keyup(function () 
{
    samefunction();
});

$("#beverage_west").keyup(function () 
{
    samefunction();
});

$("#beverage_north").keyup(function () 
{
    samefunction();
});

$("#beverage_south").keyup(function () 
{
    samefunction();
});

这只是食物和饮料,我没有包括其他的东西,比如糖果、零食等,因为把我所有的代码都扔在这里太困惑了。我只能想出这个解决方案,还有更好的解决方案吗?

var compass = ["east", "west", "north", "south"];

    for(var i=0; i<3; i++)
    {
        var name = "#food_";
        name += compass[i];

        $(name).keyup(function () {
            samefunction();
        });

        var name = "#beverage_";
        name += lokasi[i];

        $(name).keyup(function () {
            samefunction();
        });
    }

最佳答案

使用类,而不是每个元素一个唯一标识符。类就像组名。可以一次选择具有该类的所有元素。

$(".someClass").keyup(function () {
    console.log("Keyup event!")
    // Do stuff
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="someClass" type="text" />
<input class="someClass" type="text" />
<input class="someClass" type="text" />
<input class="someClass" type="text" />
<input class="someClass" type="text" />
<input class="someClass" type="text" />

关于javascript - 如何美化/重构这段JavaScript代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47388584/

相关文章:

javascript - 将对象从 DB 转换为 Map()

javascript - "showkeyboard"事件来自哪里?

javascript - Firebase signInWithEmailAndPassword 直到 UI 焦点更改后才触发 .then()

javascript - ForEach 循环内的倒数计时器 PHP

javascript - 以模态形式返回 View

javascript - 等宽字符的像素宽度

javascript - 在javascript中逆时针排序点

javascript - 如何安全地执行用户生成的客户端脚本?

javascript - AddEventListener 将事件参数传递给函数

javascript - Chrome 扩展内容脚本之间的 postMessage 安全性如何?可能的替代方案?