JavaScriptのgetElementById()のイライラする問題
-
22-09-2019 - |
質問
これは私が実装するように求められたギャラリーです
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アイテムが持っていないということです id
S、彼らは持っています value
s。
電話 document.getElementById('thumbs')
取得するために正常に動作します ul
リスト自体の要素。
Safari 4 Line 19では、私にタイプのエラーを投げかけていました ta
どれが null
.
これはあなたがどこで指摘したかによるものです ta
割り当てられました。
私はあなたが閉鎖で関数をカプセル化する方法が好きですが、私は window.onload
もっと変えることができます jquery like;実際にも同じことが言えます 要素の選択 あなたは探しています、 t=$('ul#thumbs li')
トリックをする必要があります。投げるかどうかはわかりません var
の前に ta
何でも修正するつもりですが、それはショットの価値があります。