[英]JavaScript Module Pattern document.ready not working
[英]How do you use the revealing module pattern with jQuery's document.ready?
我有以下(雖然)小'揭示模塊模式'實現代碼:
(function (CkSpace, $, undefined) {
CkSpace.GetLoanValues = function () {
var url = "/Home/UpdateAPR";
$.get(url, { Amount: $("#slider").slider("value"), Length: $("#slider2").slider("value") }, function (data) {
$("#LoanAmount").html("£"+data.LoanAdvance);
$("#TotalToRepay").html("£" + data.LoanGrossRepayable);
$("#Representative").html(data.LoanAPR);
$("#MonthlyRepayTerm").html(data.LoanTerm);
$("#MonthlyFee").html("£" + data.LoanInstalment);
});
}
} (window.CkSpace = window.CkSpace || {}, jQuery));
我的印象是,通過使用window.CkSpace
我可以全局訪問CkSpace作為其任何公共成員的根名稱空間。 但是,當我將它與$(document).ready()
一起使用時,我無法訪問我的CkSpace
命名空間,除非我在$(document).ready()
聲明它。
有人可以向我解釋這里的范圍問題,以及是否有任何方法可以避免在$(document).ready()
函數中聲明它?
編輯:我似乎有點健忘,我在$(document).ready()
范圍內訪問它時沒有給CkSpace添加窗口前綴
本,
如果我理解了您的疑慮,此代碼段可能會對您有所幫助。
window.CkSpace = {};
(function (CkSpace) {
CkSpace.getLoanValues = function () {
alert('I provide loans');
}
} (window.CkSpace || {}, jQuery));
window.CkSpace.getLoanValues();
小提琴: http : //jsfiddle.net/GDcVt/
如果沒有,請你把它做得更小,因為內部代碼與范圍無關。 在將它傳遞給函數之前,我不確定objcet是否確實存在於窗口范圍內。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.