2010-10-01 138 views
9

我是一個bonifide jQuery新手,我有一些jquery代碼,我拼湊在一起,但我不斷收到頁面加載時出現錯誤。問題是我不知道如果我把所有的花括號和括號正確關閉,真的希望在這另一套的眼睛:有沒有一種驗證jQuery代碼的好方法?

$(document).ready(function() { 
    $('#slideshow').cycle({ 
     fx: 'scrollLeft', 
     timeout: 8000 
    }); 
}); 
    $('#freeQuote form') 
     .validate({ 
     submitHandler: function(form) { 
      $(form).ajaxSubmit({ 
       success: function() { 
       var Image = $('<img />').attr({src:'_images/free-quote-confirm.png', width:231, height:267, alt:"Success"}); 
        $('#freeQuote form').hide(); 
        $('#freeQuote').append(Image) 
       } 
      }); 
     } 
     }); 

    $('#news-signup form') 
    .validate({ 
    submitHandler: function(form) { 
     $(form).ajaxSubmit({ 
      success: function() { 
      var Image = $('<img />').attr({src:'_images/register-thanks.png', width:332, height:35, alt:"Success"}); 
       $('#news-signup form').hide(); 
       $('#news-signup').append(Image) 
      } 
     }); 
    } 
    }); 

我有自己的js文件這種負載。

謝謝。

回答

8

是的,在Chrome中加載頁面,然後按Ctrl-Shift-J調出JavaScript控制檯。這將立即突出顯示任何語法錯誤。

或者,獲取Firefox的Firebug

至於你的代碼,我認爲如果你不知道你在做什麼,你應該開始減小。首先讓cycle()函數工作,然後嘗試其中一個驗證,然後嘗試其中一個驗證。一次做一點點工作,並且每次添加新的東西時,都要嘗試一下,看看它是否有效,是否會產生錯誤。

一旦你到達那個階段,按照Robert's建議,並通過JSLint運行。這會告訴你你做錯事的地方,比如在語句結尾丟失分號。

+0

或者得到[FirebugLite(http://getfirebug.com/firebuglite),它在IE6 +,火狐,Opera將工作,Safari和Chrome – Oded 2010-10-01 20:25:43

+0

很好的建議。我解決了它。感謝流程建議。 – fmz 2010-10-01 20:53:02

6

是,http://www.jslint.com/

您的代碼返回以下錯誤:

Error:

Problem at line 14 character 50: Missing semicolon.

$('#freeQuote').append(Image)

Problem at line 27 character 48: Missing semicolon.

$('#news-signup').append(Image)

Implied global: $ 1,2,7,10,12,13,14,20,23,25,26,27, document 1

的JSLint恨我所做的一切:P

+2

我認爲JSLint會爲新手提出太多錯誤。這並不是說它不是一個非常有用的工具,但如果你不知道你在找什麼,那就會產生很多相對的「噪音」。 – Skilldrick 2010-10-01 20:20:52

+0

@Skilldrick我同意這可能有點壓倒性,但沒有更好的方法從錯誤中學習。 – 2010-10-01 20:22:17

+1

從錯誤中學習是一回事,不知道正確的方法是另一個問題。 JSLint向我展示了我的問題,但並未教會我如何糾正它們! – fmz 2010-10-01 20:32:53

1

的一個好方法,以幫助驗證簡單的事情,像括號或捲曲的嵌套大括號是通過使用像Notepad ++或Eclipse這樣的編輯器。

1

使用任何強大的JS編輯器。
集錦,PHPStorm是我試過的人,看到的是,至少PHPStorm,顯示出很好的通告時,什麼是錯在你的JS代碼(包括jQuery的)

1

http://www.jslint.com/

你錯過了一個分號在兩個地方:$( '#freeQuote')追加(圖像)和$( '#新聞註冊')追加(圖)

-1

以下行應該附上一切:

$(document).ready(function() { 
    // ... 
    // everything else 
    // ... 
}); 

而且,該短(推薦)的形式是:

jQuery(function($) { 
    // ... 
    // everything else 
    // ... 
}); 
0

很多好的想法已經張貼......只有一件事補充。 使用QUnit或類似的Javascript單元測試工具來運行實際運行代碼的單元測試。沒有更好的方法來知道它是「正確的」,而不是定義什麼是「正確」的意思,然後運行它並驗證它是否「正確」。

QUnit是JQuery作者用來確保JQuery正常工作的。 Here's a getting started link

0

即使jQuery和不使用的瀏覽器特定的插件我喜歡JSHint

enter image description here

相關問題