1

这是我被要求实施的画廊

http://sandbox.leigeber.com/slideshow/

我已经对其进行了微调和更改,以便它更容易融入新网站的模板系统。

每当我运行它时,此行都会导致错误

ta=document.getElementById(thumbid); 

说它ta是空的。我知道 thumbid var 的值确实作为无序列表的 Id 存在。

我已经尝试弄清楚至少半小时以来发生了什么,但似乎无法确定!

有人可以告诉我我做错了什么吗?

4

5 回答 5

2

是的,代码看起来不错,并且从 Firebug 控制台运行相同的行可以正常工作,所以这让我想知道该thumbs元素在运行时是否真的存在?它在document.ready-style 处理程序中吗?如果在该页面上存在该元素之前调用它,ta则将为 null,这将创建该错误。

于 2009-09-09T03:27:15.657 回答
2

看起来幻灯片函数调用初始化太早了。这将在 DOM 树准备好之前调用:

var slideshow = function() {
 ...
} ();

尝试在最后删除那个 () 。

于 2009-09-09T03:34:26.140 回答
2

好消息!jQuery 是用原生 Javascript 编写的!您应该能够复制他们通过 ID 获取元素的方法并使用它。

于 2009-09-09T04:33:56.723 回答
0

有点不清楚thumbid应该有什么价值,但在我看来你的问题是你的无序列表中的 li 项目没有ids,他们有values。

调用document.getElementById('thumbs')可以很好地获取ul列表本身的元素。

于 2009-09-09T03:19:44.210 回答
0

在 Safari 4 中,第 19 行向我抛出了一个类型错误,tanull.
这是由于您指出ta分配位置的行。

我喜欢您将函数封装在闭包中的方式,但我认为window.onload可以将其更改为更像jQuery;实际选择您正在寻找的元素也是如此,就像t=$('ul#thumbs li')应该做的那样。我不知道var在前面扔一个ta是否可以解决任何问题,但值得一试。

于 2009-09-09T03:33:36.203 回答