这是我被要求实施的画廊
http://sandbox.leigeber.com/slideshow/
我已经对其进行了微调和更改,以便它更容易融入新网站的模板系统。
每当我运行它时,此行都会导致错误
ta=document.getElementById(thumbid);
说它ta
是空的。我知道 thumbid var 的值确实作为无序列表的 Id 存在。
我已经尝试弄清楚至少半小时以来发生了什么,但似乎无法确定!
有人可以告诉我我做错了什么吗?
这是我被要求实施的画廊
http://sandbox.leigeber.com/slideshow/
我已经对其进行了微调和更改,以便它更容易融入新网站的模板系统。
每当我运行它时,此行都会导致错误
ta=document.getElementById(thumbid);
说它ta
是空的。我知道 thumbid var 的值确实作为无序列表的 Id 存在。
我已经尝试弄清楚至少半小时以来发生了什么,但似乎无法确定!
有人可以告诉我我做错了什么吗?
是的,代码看起来不错,并且从 Firebug 控制台运行相同的行可以正常工作,所以这让我想知道该thumbs
元素在运行时是否真的存在?它在document.ready
-style 处理程序中吗?如果在该页面上存在该元素之前调用它,ta
则将为 null,这将创建该错误。
看起来幻灯片函数调用初始化太早了。这将在 DOM 树准备好之前调用:
var slideshow = function() {
...
} ();
尝试在最后删除那个 () 。
好消息!jQuery 是用原生 Javascript 编写的!您应该能够复制他们通过 ID 获取元素的方法并使用它。
有点不清楚thumbid
应该有什么价值,但在我看来你的问题是你的无序列表中的 li 项目没有id
s,他们有value
s。
调用document.getElementById('thumbs')
可以很好地获取ul
列表本身的元素。
在 Safari 4 中,第 19 行向我抛出了一个类型错误,ta
即null
.
这是由于您指出ta
分配位置的行。
我喜欢您将函数封装在闭包中的方式,但我认为window.onload
可以将其更改为更像jQuery;实际选择您正在寻找的元素也是如此,就像t=$('ul#thumbs li')
应该做的那样。我不知道var
在前面扔一个ta
是否可以解决任何问题,但值得一试。