以下のコードの pastPath 変数は、私を混乱させます。私は通常、C# と MVC を使用します。これはもちろん、HTML、JavaScript、および JQuery を他の関連する Web/モバイル テクノロジと共に使用することを意味します。
このコードを実行して .moreBtn pastPath レポートをクリックすると、意図したとおりの URL に設定されます。しかし、.backBtn を使用して URL を設定し、ブラウザを強制的に前のページに戻そうとすると、pastPath が定義されていないか、hello に設定されています。
ここでスコープを理解するのに問題があることはわかっています。JavaScript スコープに関する記事を読みましたが、代わりに誰かがこの問題を解決し、最初の関数から 2 番目の関数に URL を取得する方法を説明できるかどうか疑問に思っています。
JavaScript のスコープについては後で詳しく説明しますが、他のほとんどの言語のスコープとは大きく異なるようで、現在、適切に調べる時間がありません。
$(document).ready(function ()
{
pastPath = "hello";
$(".moreBtn").click(function ()
{
var controller = $(".moreBtn").data('ctrl');
var action = $(".moreBtn").data('action');
loc = GetPathDetails("full"); //This simply returns the part of the URL I need.
pastPath = loc;
alert(pastPath);
var fullPath = loc + "/" + controller + "/" + action;
window.location = fullPath;
});
$(".backBtn").click(function ()
{
alert(pastPath);
//window.location = pastPath;
});
});
ご協力いただきありがとうございます。