前に私は美しいjsコードin this linkについて尋ねる質問がありますが、インデックス番号の代わりにという単語を使用しているので、今度はこのコードを美しくする方法がわかりません。(ボルトで固定言葉が、それは私の前の質問と同じではありません理由です)このJavaScriptコードを美化/リファクタリングする方法は?
オリジナル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();
});
}
あなたは、問題のすべての要素にクラスを使用することができませんでしたか?次に、そのクラスを使用して選択し、イベントハンドラを割り当てるだけで済みます。 – Sirko
'keyup'に関数名(リファレンス)を渡すべきです。 'keyup(samefunction)' – evolutionxbox
_「美化する」_ JavaScriptは、あなたが何を意味するのかを意味するものではありません。これは、書式設定(空白、インデント、改行など)を指します。あなたのケースは_ "リファクタリング" _と呼ばれる可能性があります。 – yuriy636