これらの2つのjavascriptを組み合わせる必要があります

これらのスクリプトを両方とも実行したいと思います。

var myScroll;
function loaded() {
    myScroll = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });
}

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

document.addEventListener('DOMContentLoaded', loaded, false);

私は上記に加えてこれを以下に加えたいと思います。

var myScroll;   

function loaded() {
myScroll = new iScroll('wrapper', {
    snap: true,
    momentum: false,
    hScrollbar: false,
    onScrollEnd: function() {
        document.querySelector('#indicator > li.active').className = '';
        document.querySelector('#indicator > li:nth-child(' + (this.currPageX+1) + ')').className = 'active';
    }
 });
}

document.addEventListener('DOMContentLoaded', loaded, false);
8
そしてそれらを組み合わせるとどうなりますか?
追加された 著者 James Montagne,
上記は機能しません。
追加された 著者 dave,

1 答え

とにかく、同じ名前の変数を2つ、同じ名前の関数を2つ作成することはできません。しかし、2つの loaded()関数の本体を1つの関数にまとめることができます。 (または、 loaded1 loaded2 の名前を変更して個別に呼び出すこともできますが、それはしません)。

私は myScroll 変数が何のために使われているのかわかりません。あなたが示したコードでは値は割り当てられていません。使用していない場合は、単にそれを削除して(戻り、何かに戻り値を代入せずに new iScroll(); を直接呼び出す)使用する場合は、彼らは衝突しない。

そう:

var myScroll1,
    myScroll2;

// combined function
function loaded() {
   //statement from the first function
    myScroll1 = new iScroll('wrapper', { scrollbarClass: 'myScrollbar' });

   //statement from the second function
    myScroll2 = new iScroll('wrapper', {
       snap: true,
       momentum: false,
       hScrollbar: false,
       onScrollEnd: function() {
           document.querySelector('#indicator > li.active').className = '';
           document.querySelector('#indicator > li:nth-child(' +
                       (this.currPageX+1) + ')').className = 'active';
       }
   });  
}

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

document.addEventListener('DOMContentLoaded', loaded, false);     
2
追加された
ありがとう!私はjavascriptを初めて使い、助けに感謝します。
追加された 著者 dave,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript