![](/img/trans.png)
[英]Differences between window.onload = function(){ .. } / window.onload = function(){ .. }();
[英]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.