2010-10-20 2 views
165

У меня есть код JavaScript, который работает в FireFox, но не в Chrome или IE.Ошибка JavaScript (Uncaught SyntaxError: Неожиданный конец ввода)

В Chrome JS консоли я получаю ошибку последующей:

"Uncaught SyntaxError: Unexpected end of input".

код JavaScript Я использую это:

<script> 
$(function() { 
$("#mewlyDiagnosed").hover(function() { 
    $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"}); 
}, function() { 
    $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"}); 
}); 
</script> 

Это говорит ошибка на последней строке, которая}) ;

+1

Я знаю, что Chrome V8 Chrome для «УДАЛИТЬ» на сервере, если ответ был 200 'success' вместо [204] (http://tools.ietf.org/html/rfc2616#section.10.2 .5) 'success - no response' Я тоже получу эту ошибку. Просто хедз-ап на случай, если кто-то получит это. –

ответ

336

Добавить еще });.

При правильном отступом, код читает

$(function() { 
    $("#mewlyDiagnosed").hover(function() { 
     $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"}); 
    }, function() { 
     $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"}); 
    }); 
MISSING! 

Вы никогда не закрывал наружный $(function() {.

+228

Урок есть, ** всегда отступайте от своего кода ** (и отступом его правильно). – SLaks

+2

О, чувак, я хочу, чтобы мой VIM поймал эту синтаксическую ошибку. Я не могу поверить, сколько времени я в конечном итоге трачу впустую с неосторожными синтаксическими ошибками. – HeyWatchThis

+3

Урок есть, всегда используйте хороший редактор с хорошими плагинами, который может обнаруживать спаривание круглых скобок, выделять его или даже ремонтировать проблемы. –

14

Форматирование кода немного, вы только закрыли функцию внутреннего наведения. Вы не закрыли внешние части, отмеченные ниже ....

$(// missing closing) 
function() { // missing closing } 
    $("#mewlyDiagnosed").hover(
     function() { 
      $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"}); 
     }, 
     function() { 
      $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"}); 
     }); 
4

В моем случае, это в конечном итоге быть просто двойные кавычки проблема в моем букмарклет, помню только одинарные кавычки на букмарклеты. На всякий случай это помогает кому-то.

34

http://jsbeautifier.org/ полезен для отступов вашего уменьшенного кода JS.

Кроме того, с Google Chrome вы можете использовать «симпатичную печать». Смотрите пример скриншот ниже показывает jquery.min.js от переполнения стека красиво отступом справа от моего браузера :)

enter image description here

84

В моем случае, я пытался разобрать пустой JSON:

JSON.parse(stringifiedJSON); 

Другими словами , произошло следующее:

JSON.parse(""); 
+2

Это, к сожалению, включает '$ .parseJSON' jquery 1.11.2 –

2

У меня возникла эта ошибка, когда я пытался написать букмарклет javascript. Я не мог понять, что вызвало это. Но в итоге я попробовал URL-кодирование букмарклета через следующий веб-сайт: http://mrcoles.com/bookmarklet/, а затем ошибка исчезла, поэтому, вероятно, это была проблема с определенными символами в коде javascript, которые интерпретируются как специальные символы управления URL.

+2

У меня был // комментарий в моем js, который закомментировал немного больше, чем я хотел, начиная с вставки его в URL-адрес букмарклета сделал весь код однострочным, а // был в середине кода. – mflodin

2

Эта ошибка вызвана главным образом пустым возвратом ajax вызовов при попытке разобрать пустой Json.

Чтобы решить этот тест, если возвращаемые данные пуста

  $.ajax({ 
        url: url, 
        type: "get", 
        dataType: "json", 
        success: function (response) { 

         if(response.data.length == 0){ 
          // EMPTY 
         }else{ 
          var obj =jQuery.parseJSON(response.data); 
          console.log(obj); 
         } 
        } 
      }); 
0

Я получил это, так как я был комментарий в файл я добавлял к моему JS, действительно неудобную причине к тому, что происходит - хотя, когда нажав на файл VM, который был предварительно отображен и поймал ошибку, вы узнаете, что именно произошло, в моем случае это был просто раскол какого-то кода, который я использовал.

0

В моем случае это было вызвано отсутствием (0) в javascript:void(0) в якоре.

Смежные вопросы