需要结合这两个javascripts

时间:2011-11-25 03:41:19

标签: 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);

1 个答案:

答案 0 :(得分:2)

无论如何,您不能创建两个具有相同名称的变量,或两个具有相同名称的函数 - 不在同一范围内。但是您可以将两个loaded()函数的主体组合到一个函数中。 (或者您可以将它们重命名为loaded1loaded2并单独调用它们,但我不会这样做。)

我不知道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);