2012-12-03 17 views
0

我拉我的頭髮:我的Javascript時鐘不起作用。我使用Firebug來查找錯誤,但我沒有得到任何輸出。JavaScript時鐘與圖像

圖像文件在子文件夾Dual_MonthsDual_Numbers中。我在我的功能中添加了document.write();以查看它們是否正在觸發,但我沒有收到任何迴應。如果有人看到任何明顯的錯誤,我會感謝您的幫助。

var imageclock=new Object() 
imageclock.digits=["num_0.png", "num_1.png", "num_2.png", "num_3.png", "num_4.png", "num_5.png", "num_6.png", "num_7.png", "num_8.png", "num_9.png", "am.png", "pm.png", "colon.png"] 
imageclock.months=["dual_jan.png", "dual_feb.png", "dual_mar.png", "dual_apr.png", "dual_may.png", "dual_jun.png", "dual_jul.png", "dual_aug.png", "dual_sept.png", "dual_oct.png", "dual_nov.png", "dual_dec.png"] 
imageclock.instances=0 
var preloadimages=[] 
var preloadmonths=[] 
for (var i=0; i<imageclock.months.length; i++){ //preload images 
    preloadmonths[i]=new Image() 
    preloadmonths[i].src="Dual_Months"+imageclock.months[i] 
} 
for (var i=0; i<imageclock.digits.length; i++){ //preload images 
    preloadimages[i]=new Image() 
    preloadimages[i].src="Dual_Numbers"+imageclock.digits[i] 
} 
imageclock.imageHTML=function(timestring){ 
//return timestring (ie: 1:56:38) into string of images instead 
    var sections=timestring.split("/") 
    for (var i=0; i<sections.length; i++){ 
    if (sections[i] == sections[0]) 
     sections[i]='<img src="Dual_Months/'+imageclock.months[0]+'" />' 
    else if(sections[i].length==1 && sections[i] == sections[1]) 
     sections[i]='<img src="Dual_Numbers/'+imageclock.digits[0]'" />'+'<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i])]+'" />' 
    else if(sections[i].length!=1 && sections[i] != sections[0]) 
     sections[i]='<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i].charAt(0))]+'" />'+'<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i].charAt(1))]+'" />' 
    } 
    return sections[0]+'<img src="single_nums/'+imageclock.digits[12]+'" />'+sections[1]+'<img src="single_nums/'+imageclock.digits[12]+'" />'+sections[2] 
} 
imageclock.display=function(){ 
    var clockinstance=this 
    this.spanid="clockspan"+(imageclock.instances++) 
    document.write('<span id="'+this.spanid+'"></span>') 
    this.update() 
    setInterval(function(){clockinstance.update()}, 1000) 
} 
imageclock.display.prototype.update=function(){ 
    var dateobj=new Date() 
    var currentdate=dateobj.getMonth()+"/"+dateobj.getDay() 
    document.write(currentdate) 
    var currenttimeHTML=imageclock.imageHTML(currentdate) 
    document.getElementById(this.spanid).innerHTML=currenttimeHTML 
} 
new imageclock.display(); 
+0

唐'使用'document.write()'來調試 - 你提到你有Firebug(並且FF帶有內置的d ev工具),所以使用'console.log()'。您的圖片預加載代碼在源文件夾後面缺少'/'。 – nnnnnn

+1

P.S.這是一個「工作」版本:http://jsfiddle.net/xLNEs/(它並沒有真正的工作,因爲我沒有你的圖像,但語法錯誤已得到糾正,所以至少它有什麼...... ... – nnnnnn

+0

感謝@nnnnnn在console.log上的信息我做了比任何更多的PHP編程,所以我做了很多「回聲」 – Denoteone

回答

2

腳本中有一些語法錯誤。

sections[i]='<img src="Dual_Months/'+imageclock.months[0]+'" /> 

sections[i]='<img src="Dual_Months/'+imageclock.months[0]+'" />' 

在此行缺少一個+

在此行的末尾缺少一個'

sections[i]='<img src="Dual_Numbers/'+imageclock.digits[0]'" />'+'<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i])]+'" />' 

sections[i]='<img src="Dual_Numbers/'+imageclock.digits[0]+'" />'+'<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i])]+'" />' 
+0

謝謝我已經看到了改進(不再盯着空白屏幕)+1 – Denoteone

+1

語法熒光筆實際上告訴你這樣的錯誤。 –

2

您的JavaScript得到snytax糾錯首先

 if (sections[i] == sections[0]) 

      sections[i]='<img src="Dual_Months/'+imageclock.months[0]+'" />' 

     else if(sections[i].length==1 && sections[i] == sections[1]) 

     sections[i]='<img src="Dual_Numbers/'+imageclock.digits[0]+'" />'+'<img src="Dual_Numbers/'+imageclock.digits[parseInt(sections[i])]+'" />' 

     else if(sections[i].length!=1 && sections[i] != sections[0]) 
+1

感謝您幫助解決語法錯誤,我已經看到了一些進步。 – Denoteone