誰かがこのコードを再利用可能な関数にリファクタリングして使用方法を教えてもらえると本当に感謝します。私はちょっと初心者ですが、私はたくさんのものを繰り返していることがわかります。それをより良く書く方法があると確信しています。jQueryコードを再利用可能な関数にリファクタリングする
必要な場合はhtmlを追加できます。
$("[value=home]").click(function() {
$(currentLink).removeClass("cantclick");
$(current).hide();
$(this).addClass("cantclick");
$("#texts").fadeIn(900);
current = $("#texts");
currentLink = $("[value=home]");
console.log("current is " + current.text() + ".");
});
$("[value=aboutme]").click(function() {
$(currentLink).removeClass("cantclick");
$(current).hide();
$(this).addClass("cantclick")
$("#aboutmetext").fadeIn(900);
current = $("#aboutmetext");
currentLink = $("[value=aboutme]");
console.log("current is " + current.text() + ".");
});
$("[value=tuition]").click(function() {
$(currentLink).removeClass("cantclick");
$(current).hide();
$(this).addClass("cantclick")
$("#tuitiontext").fadeIn(900);
current = $("#tuitiontext");
currentLink = $("[value=tuition]");
console.log("current is " + current.text() + ".");
});
$("[value=consultancy]").click(function() {
$(currentLink).removeClass("cantclick");
$(current).hide();
$(this).addClass("cantclick")
$("#consultancytext").fadeIn(900);
current = $("#consultancytext");
currentLink = $("[value=consultancy]");
console.log("current is " + current.text() + ".");
});
これはありがたいことですが、関数が呼び出されるたびに、以前に押されたボタンのためにcurrentLinkが異なる必要があります。そのため、currentLinkの値を先取りできません... – Raph117
どのようにグローバル変数を宣言し、ボタンをクリックするたびにその要素を変数に割り当てますか?だから、グローバルな 'var currentLink;'があり、ボタンがクリックされるたびに 'currentLink = $(this);'が実行されます。その変数を関数で使用することができます。 – steven35
Stevenさん、ありがとう、本当に助かりました。私はそれに行くよ、R – Raph117