1

これは私が実装を依頼されたギャラリーです

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

新しいサイトのテンプレート システムに少し簡単に収まるように、少し切り刻んで変更しました。

実行するたびに、この行でエラーが発生します

ta=document.getElementById(thumbid); 

taそれはヌルと言って。私は、thumbid var の値が順序付けられていないリストの Id として存在することを知っています。

少なくとも 30 分間何が起こっているのかを把握しようとしましたが、うまくいきません!

誰かが私が間違っていることを教えてもらえますか?

4

5 に答える 5

2

朗報です!jQuery はバニラ Javascript で書かれています。IDで要素を取得するためのメソッドをコピーして、それを使用できるはずです。

于 2009-09-09T04:33:56.723 に答える
2

ええ、コードは正常に見え、Firebug コンソールから同じ行を実行しても問題ないのでthumbs、実行時に要素が実際に存在するかどうか疑問に思いますか? document.readyスタイルハンドラーにありますか?要素がそのページに存在する前に呼び出された場合、tanull になり、そのエラーが発生します。

于 2009-09-09T03:27:15.657 に答える
2

初期化のためにスライドショー関数が呼び出されるのが早すぎるようです。これは、DOM ツリーの準備が整う前に呼び出されます。

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

その () を最後に削除してみてください。

于 2009-09-09T03:34:26.140 に答える
0

どのような値が必要かは少し不明ですthumbidが、順序付けられていないリストの li アイテムにids がなく、 sがあることが問題のように思えますvalue

呼び出しは、リスト自体document.getElementById('thumbs')の要素を取得するために正常に機能します。ul

于 2009-09-09T03:19:44.210 に答える
0

Safari 4 では、19 行目で、taどれがnull. これは、割り当てられ
た場所を指摘した行によるものです。ta

関数をクロージャにカプセル化する方法が気に入っていますが、jQuery のようwindow.onloadに変更できると思います。探している要素を実際に選択することについても同じことが言えます。の前に投げることで何かが修正されるかどうかはわかりませんが、試してみる価値はあります。t=$('ul#thumbs li')varta

于 2009-09-09T03:33:36.203 に答える