簡體   English   中英

你如何在jQuery的document.ready中使用揭示模塊模式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM