質問

これは私が実装するように求められたギャラリーです

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

私はそれを少し切り刻んで変更したので、新しいサイトのテンプレートシステムに少し簡単に収まりました。

実行するたびに、この行はエラーを引き起こします

ta=document.getElementById(thumbid); 

それを言っています ta 無効です。 Thumbid Varの価値は、順序付けられていないリストのIDとして存在することを知っています。

私は少なくとも30分間何が起こっているのかを理解しようとしましたが、それを釘付けにすることはできません!

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

役に立ちましたか?

解決

ええ、コードはうまく見え、FireBugコンソールから同じ行を実行しているのはOKなので、 thumbs 要素は実際には実行時に存在しますか?それは document.ready- スタイルハンドラー?そのページに要素が存在する前に呼び出されている場合は、 ta nullになり、そのエラーが作成されます。

他のヒント

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

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

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

良いニュース! JQueryはVanilla JavaScriptに書かれています! IDで要素を取得する方法をコピーして、それを使用できるはずです。

どんな価値が少し不明です thumbid 持っているはずですが、あなたの問題のように私には、あなたの順序付けられていないリストのliアイテムが持っていないということです idS、彼らは持っています values。

電話 document.getElementById('thumbs') 取得するために正常に動作します ul リスト自体の要素。

Safari 4 Line 19では、私にタイプのエラーを投げかけていました ta どれが null.
これはあなたがどこで指摘したかによるものです ta 割り当てられました。

私はあなたが閉鎖で関数をカプセル化する方法が好きですが、私は window.onload もっと変えることができます jquery like;実際にも同じことが言えます 要素の選択 あなたは探しています、 t=$('ul#thumbs li') トリックをする必要があります。投げるかどうかはわかりません var の前に ta 何でも修正するつもりですが、それはショットの価値があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top