Как вы используете шаблон модуля раскрытия с документом jQuery.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() функционировать?

РЕДАКТИРОВАТЬ: я был немного забывчивым, кажется, и я не ставил префикс CkSpace с окном при доступе к нему в рамках$(document).ready()

1 ответ

Решение

Бен,

Если я понял вашу проблему, этот фрагмент кода может вам помочь.

window.CkSpace = {};

(function (CkSpace) {

    CkSpace.getLoanValues = function () {
       alert('I provide loans');
    }

} (window.CkSpace || {}, jQuery));

window.CkSpace.getLoanValues();

Скрипка: http://jsfiddle.net/GDcVt/

Если нет, пожалуйста, сделайте его более минимальным, поскольку внутренний код не имеет отношения к области видимости. Я не уверен, существует ли объект в области видимости окна, прежде чем передать его функции.

Другие вопросы по тегам