window.onload里面的函数

时间:2013-07-10 17:25:43

标签: javascript html

我有一个外部js文件,顶部包含window.onload。当我点击单独的HTML文件中的按钮时,我想在control.next()内调用window.onload函数。

window.onload = function() {

 control = {

    margin: function(n) {
        sliderContent.style.marginLeft = '-' + n + '00%';
    },

    prev: function() {
        (n === 0) ? n = (slideCount - 1) : n--;
        control.margin(n);
    },

    next: function() {
        alert("next");
        (n < slideCount - 1) ? n++ : n = 0;
        control.margin(n);
    },

    slide: function() {
        move = setInterval(function(){
            (n < slideCount - 1) ? n++ : n = 0;
            control.margin(n);
        }, 4000)
    }
 }

}

按钮代码是:

<button class="xy" onclick="">next</button>

您还可以在http://jsfiddle.net/gLPhr/2/

查看小提琴

3 个答案:

答案 0 :(得分:0)

由于control范围在anonymouys函数内,因此您无法尝试执行此操作。我没有看到你需要onload事件,删除它,你的代码应该可以正常工作。

答案 1 :(得分:0)

你只需暴露控制对象,是吗?

var control;

window.onload = function() {

 control = {
...

否则,control的范围限定为window.onload,外面的任何内容都无法看到它。

是的,不确定小提琴是你想要的地方。

答案 2 :(得分:0)

将控制变量保持在外部,只需在onload处理程序中调用所需的方法即可。

  

var control = {

margin: function(n) {
    sliderContent.style.marginLeft = '-' + n + '00%';
},

prev: function() {
    (n === 0) ? n = (slideCount - 1) : n--;
    control.margin(n);
},

next: function() {
    alert("next");
    (n < slideCount - 1) ? n++ : n = 0;
    control.margin(n);
},

slide: function() {
    move = setInterval(function(){
        (n < slideCount - 1) ? n++ : n = 0;
        control.margin(n);
    }, 4000)
}  
     

}

     

window.onload = control.next