我知道這可能是一個愚蠢的問題,我知道JS範圍的問題是非常常見的,但是,您是否可以善意地幫助我完成這個任務。Ajax函數內的Javascript變量範圍
這裏是我的功能:
function checkOpen(storeData) {
if (storeData.menu === 'true') {
var offerImgPath = '/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color'+ Brand.styleColour + '/v3/',
offer1,
offer2;
cafeTabContent = '<p>Cafe/Restaurant facilities are available in this store.</p>';
cafeTabContent += '<p class="menu_link"><a href="/store_menus/menu.pdf" target="_blank">Click here to download a menu</a></p>';
if (Brand.storeLocatorSettings.cafeOffersOn === true) {
$.ajax({
url : Arcadia.Brand.storeLocatorSettings.offersPageURL,
success : function(data) {
var offerContainer = $(data).find('#basic_story_content');
offer1 = offerContainer.children(':first-child').attr('src');
offer2 = offerContainer.children(':last-child').attr('src');
}
});
console.log(offer1);
cafeTabContent += '<p>Current offers:</p>';
cafeTabContent += '<p class="offer_graphic"><img src="' + offer1+ '" alt="Offer 1" /></p>';
cafeTabContent += '<p class="offer_graphic"><img src="' + offer2+ '" alt="Offer 2" /></p>';
}
return cafeTabContent;
} else {
return false;
}
};
是我遇到的問題是,儘管offer1 &供應2被阿賈克斯成功函數外部定義的事實,在這個函數中應用的值不被保留外因此console.log(offer1)返回undefined而不是圖像路徑。我知道這是一個範圍問題,它真的讓我煩惱。任何幫助將不勝感激。
謝謝你們,我知道這只是我愚蠢的一個例子。看到你們所有人都給了我正確的答案,我會在Ajinkya看到他的第一個信用點。 – 2012-03-21 09:30:13