繁体   English   中英

在window.onload内部的功能

[英]function inside window.onload

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

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/查看小提琴

由于control的作用域在anonymouys函数内部,因此您尝试执行的操作是不可能的。 我看不到您需要onload事件,将其删除,您的代码应该可以正常工作。

您只需要公开控件对象,是吗?

var control;

window.onload = function() {

 control = {
...

否则, control的作用域为window.onload ,外面看不到任何东西。

顺便说一句,不确定小提琴是否在您想要的地方。

将控制变量保持在外部,然后在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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM