0

質問の言い方が正しいかどうかはわかりませんが、とにかく...

私は iscroll を使用しており、後で使用するために iScroll init 呼び出しをプライベート関数にラップしました。これは私が持っているものです:

 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();、またはsetTimeoutiScroll のドキュメントで説明されている関数を使用して、iScroll を更新したいということです。

元の init 呼び出しをプライベート関数でラップしたので、リフレッシュやその他のメソッド (destroy など) を実行するにはどうすればよいですか?

4

1 に答える 1

1

myScroll関数が実行された後に変数にアクセスしようとしてiscrollいる場合、答えはできません。その時点でなくなりました。アクセスできるように、別の場所に保存する必要があります。iscroll1 つのアイデアは、次のように同じオブジェクトに配置することです。

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);
};

その後、次のようにリフレッシュできます。

Namespace.myScroll.refresh();

重要なのは、myScroll を、一時的なローカル変数ではない永続的で公開された場所に格納することです。

于 2012-02-04T17:55:34.170 に答える