看板 Ajax 關於我們 聯絡資訊
這個問題,我已經疑惑了很久。 常常有需要一次執行多個function() 比如說window.onload後 一次做多個動作 想當然所有的function一次寫完,可是往往第二個function之後的,沒有作用。 document.getElementById('banner').onclick=goHome;//有用 document.getElementById('banner2').onclick=goHome;//沒用 神奇的是,同樣的code,加上setTimeout就可以了。 setTimeout("document.getElementById('banner').onclick=goHome",0)//有用 setTimeout("document.getElementById('banner2').onclick=goHome",0)//有用 通常millsec我會隨便設個100,200,但上例用0也行。 我不知道為什麼,但這樣做就可以work了! 再一個例子。 這樣常常不行。 charlie(); wake_up(); go_go(); shoe_shoe(); 這樣就可以。 setTimeout(charlie,100); setTimeout(wake_up,500); setTimeout(go_go,800); setTimeout(shoe_shoe,900); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.40.183
chph:順序不對吧. 檢查你的 js 是否在 HTML 載入完成以前就執行了 06/12 22:14
tomin:應該都是window.onload之後的事件(通常是使用者觸發的)了 06/13 00:05
重點在「多個」,一個一個來都沒問題的。第一個一般是沒問題。 例一 test1();//有用 test2();//沒用 test3();//沒用 例二 test2();//有用 test1();//沒用 test3();//沒用 例三 test3();//有用 test2();//沒用 test1();//沒用 看出來了嗎?只要擺在第一個,就可以正確的執行。第二個、第三個則不一定。 我懷疑是瀏覽器的安全性設定所導致。 當然也可能是我搞錯了。不過這問題我滿常遇到的。 ============================ 暫時沒事了 ================================ 我自己寫了小範例,試不出來。不過我大概知道其中一個問題了。 當某id不存在,仍然去get它,會發生錯誤,導致接下來的code都沒作用。 document.getElementById('a').onclick=goHome;//發生錯誤 document.getElementById('b').onclick=goHome;//沒用 document.getElementById('a').onclick=goHome;//沒用 document.getElementById('b').onclick=goHome;//沒用 <div id="b" class="word">囉</div> <div id="c" class="word">世</div> <div id="d" class="word">界</div> ※ 編輯: tomin 來自: 122.116.40.183 (06/13 01:00)
awkwdrily:..................... 06/13 16:09
awkwdrily:這不是直譯的語言嗎 06/13 16:09