ここで問題が発生し、ここ数日髪を引っ張っています...
私はウェブサイトのために一種の言語フィルター機能を作っています、そしてそれはあなたが言語をクリックするメニューであり、そしてそれはそれらの残りをフィルターで取り除きます。たくさんの異なる言語を手に入れたので、同じコードを15個作成するのではなく、すべてをループするのが最善だと思いました。
これが私のコードです:
// >>> Language click effects
for(langClickNum = 1; langClickNum < langList.length; langClickNum++) {
$('#lang'+langList[langClickNum]).click(function() {
if (!langSelect[langClickNum]) {
clrSearch();
clrLang();
langHide();
$('#lang'+langList[langClickNum]).addClass('langCheck');
$('.itemLang'+langList[langClickNum]).show();
langSelect[langClickNum] = true;
}
else {
clrLang();
langShow();
}
});
}
クリック関数の内部を見るとわかるように、ループカウンター番号を使用してさまざまな配列からインデックスを選択したいと思います。ただし、クリック関数内のスクリプトはクリックしないと実行されないため、正しい配列番号を取得できません。代わりに、クリックした各言語の最後の配列番号を選択します。私は問題が何であるかをよく知っていますが、それを解決する方法がわかりません。助けてください!
ループしない番号を指定すると、次のように問題なく機能します。
$('#lang'+langList[1]).click(function() {
if (!langSelect[1]) {
clrSearch();
clrLang();
langHide();
$('#lang'+langList[1]).addClass('langCheck');
$('.itemLang'+langList[1]).show();
langSelect[1] = true;
}
else {
clrLang();
langShow();
}
});
私の問題をご覧いただければ幸いです。