Как вызвать метод, когда я обернул родительский метод в частную функцию в JavaScript - PullRequest
0 голосов
/ 04 февраля 2012

Я не уверен, что правильно сформулировал свой вопрос, но в любом случае ...

Я использую iscroll и обернул вызов инициализации iScroll в частную функцию для последующего использования. вот что у меня есть:

 Namespace.iscroll =  function () {
        var myScroll;
      myScroll = new iScroll('mainContent-wrap', { 
          hScrollbar: false 
       });

    document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
    document.addEventListener('DOMContentLoaded', Namespace.iscroll, false);
};

Я вызываю iscroll на любую нужную мне страницу, используя Namespace.iscroll();

У меня вопрос, теперь я хочу обновить iScroll с помощью myScroll.refresh(); или с помощью функции setTimeout, как описано в документации по iScroll.

Поскольку я завернул исходный вызов init в частную функцию, как запустить обновление и другие методы (например, destroy) для него?

1 Ответ

1 голос
/ 04 февраля 2012

Если вы пытаетесь получить доступ к переменной myScroll после запуска функции iscroll, ответ - вы не можете.Это ушло в тот момент.Вам придется сохранить его где-то еще, чтобы вы могли добраться до него.Одна идея состоит в том, чтобы поместить его в тот же объект, что и iscroll, например так:

Namespace.iscroll = function () {
    Namespace.myScroll = new iScroll('mainContent-wrap', {
        hScrollbar: false
    });

    document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
    document.addEventListener('DOMContentLoaded', Pelau.iscroll, false);
};

Затем вы можете сделать рефеш как это:myScroll в некотором постоянном и общедоступном месте, которое не является временной локальной переменной.

...