我有一个相当简单的javascript创建滑块,但onclick函数返回错误,我无法弄清楚原因。
var Slider = {
content: ["text", "img"],
current: 0,
render: function(){
view.innerHTML = this.content[this.current];
},
changeSlide: function(dir){
if(dir) {
this.current=0;
return
} else {
this.current=1;
}
this.render();
}
}
在HTML中我已经
了<a onclick="Slider.changeSlide('back')"><</a> <a onclick="Slider.changeSlide()">></a>
但点击该链接我收到Slider is undefined
错误。
答案 0 :(得分:2)
您需要将JavaScript load参数设置为&#39; No wrap-in&#39;所以它可用:
http://jsfiddle.net/isherwood/wxPWk/2/
That raises other errors, unfortunately.
答案 1 :(得分:1)
快速解决方法是在Slider
之外声明window.onload
并在window.onload
中分配:
var Slider = {};
window.onload = function() {
Slider = {
changeSlide: ...
}
}
更好的解决方案是在Isherwood提议的Slider
之外定义window.onload
。然后,您必须将独立的Slider.render()
放在window.onload
内。
var Slider = {
...
changeSlide: function(dir) {
if (dir) {
this.current = 0;
} else {
this.current = 1;
}
this.render();
}
}
window.onload = function() {
Slider.render();
}
请注意,document.getElementById('slide')
只会在HTML呈现后生成正确的div
,因此您应该将view
变量作为render
函数的一部分:
var Slider = {
content: ["text", "img"],
current: 0,
render: function() {
var view = document.getElementById('slide');
view.innerHTML = this.content[this.current];
}, ...
}
或为view
中的window.onload
分配值。