非常にカスタマイズされた e コマース サイトに取り組んでいます。ページは ajax 経由で読み込まれ、別の AJAX リクエストを に添付しました$.ajaxSuccess()
。この要求は、PHP スクリプトから応答を取得するために使用されます (その後、応答をストア リストに読み込みます)。
$(document).ajaxSuccess(function() {
var thisHash = location.hash,
hashArr = thisHash.split("/"),
folder = hashArr[1],
file = hashArr[2];
retrieveMarkup(folder,file);
})
次にretrieveMarkup()
、 は PHP スクリプトに対して get 要求を行い、応答を$("#store")
.
function retrieveMarkup(mainCat, subCat) {
if (!subCat || subCat == "all"){
var urlOb = $.param({ "cat": mainCat});
}
else {
urlOb = $.param({ "cat": mainCat, "subcat" : subCat});
}
$.ajax({
url: backendBase+"markup&"+urlOb,
global: false,
dataType: "text",
cache: true,
success: function(d,s,x) {
writeRes(x.responseText);
}
})
}
関数内の を falseに設定してglobal
、retrieveMarkup()
無限ループが発生しないようにします。
ここで私は問題に遭遇しています:
初めてサイトをロードすると、すべてが期待どおりに機能します。に移動しBeverages -> All
ます。スクリプトは期待どおりに機能し、応答をストアに読み込みます。その後、 をクリックしてSnacks -> All
も、スクリプトは引き続き機能します。ただし、スクリプトに戻ろうとしてBeverages -> All
も、ストア アイテムに応答が挿入されません。しかし、戻ることができSnacks -> All
、スクリプトは期待どおりに機能します。
注:機能させるにはBeverages -> All
、最初にロードする必要があります。
これは説明が少し難しいので、サイトへのリンクを次に示しますhttp://grantcr.com/kmm/site/#!/home
これは、このサイトでの私の最初の投稿です。だから私に気楽にしてください:)