我遇到了一個問題,其中另一個頁面上的相同的JavaScript工作正常,但由於某種原因在這個特定的頁面上,它拋出一個錯誤,完全相同的代碼。在IE中的空對象
我有一個函數,獲取更新並傳遞屬性的對象來更新。
function animateTo(a,t){
var speed,easing,del,cb;
speed = a.speed ? a.speed : 600;
del = a.del ? a.del : 0;
setTimeout(function() {
t.stop(true).animate({ left:a.x, top:a.y, opacity:a.opacity }, { duration: speed, easing: easeOutExpo });
}, del);
}
在IE中它說a.speed爲null。已傳遞的對象有時具有速度屬性,有時不具有。所以我的猜測是當它沒有在IE中被識別爲空。他們是否有辦法解決這個問題。而無需每次將速度屬性添加到對象。
我以爲speed = a.speed? a。速度:600; 如果a.speed不存在,它會將其設置爲600。
UPDATE:
我認爲它可能有一些做的setTimout。 這兩個頁面之間唯一的區別是該函數被同時調用3次。在它工作的頁面上,animateTo函數的調用被隔開。看來,當我一個接一個地調用它時,我得到的速度是null或者不是隻在IE中的對象。
此外,當我移動setTimout內部的變量,我沒有得到該錯誤。但我不得不離開setTimout函數之外的del變量,當我這樣做時,我得到一個錯誤del是空或不在IE中的對象。
它似乎在第一次調用setTimout的作品,並能夠讀取一個速度,但第二個調用a.speed爲空,因爲第一個setTimeout仍然試圖找到不在周圍的局部變量。至少這是我的理論。任何人都有這個想法。
我從來沒有聽說過必須做你以前說的話。所以我試了一下,沒有什麼區別。 – Chapsterj