这是我被要求实施的图库
http://sandbox.leigeber.com/slideshow/
我已经切碎并且稍微改变它以便它更容易适应新网站的模板系统。
每当我运行它时,此行都会导致错误
ta=document.getElementById(thumbid);
说ta
为空。我知道thumbid var的值确实存在于无序列表的Id中。
我已经试着想出现在至少半个小时内发生了什么,似乎无法确定它!
有人可以告诉我我做错了吗?
答案 0 :(得分:2)
是的,代码看起来很好,并且从Firebug控制台运行相同的行工作正常,所以它让我想知道thumbs
元素在运行时是否实际存在?它是在document.ready
式处理程序中吗?如果在该页面上存在元素之前调用它,那么ta
将为null,这将产生该错误。
答案 1 :(得分:2)
看起来幻灯片功能过早地被调用进行初始化。这将在DOM树准备好之前调用:
var slideshow = function() {
...
} ();
尝试在最后删除那个()。
答案 2 :(得分:2)
答案 3 :(得分:0)
有点不清楚thumbid
应该有什么价值,但在我看来,你的问题是你的无序列表中的li项目没有id
s,它们有{{1 }}第
调用value
可以很好地获取列表本身的document.getElementById('thumbs')
元素。
答案 4 :(得分:0)
在Safari 4第19行中,我遇到ta
null
的类型错误
这是由于您在指定ta
时指出的行。
我喜欢将函数封装在闭包中,但我认为window.onload
可以更改为jQuery like;实际上selecting the elements你正在寻找同样的东西,像t=$('ul#thumbs li')
这样的东西应该可以做到。我不知道在var
前面抛出ta
是否会解决问题,但值得一试。