我有一个外部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>
查看小提琴
答案 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