2012-02-01 2 views
0

Я получаю эту ошибку, когда я пытаюсь вызвать эту функцию в Chrome 16.0.912.77 м:Uncaught SyntaxError: Неожиданный конец ввода - Javascript ошибка

function fade(e){ 
    if(op > 0){ 
     op -= 0.01; 
     document.getElementById(e).style.opacity = op; 
     window.setTimeout("fade(\""+e+")\"", 10); 
    } 
} 

Это простая функция, которая выцветает элемент на моей странице из , Я читал, что ошибка появляется, когда я забываю a} -брейк, но я закрыл все ..

Любые идеи?

+0

Вы тоже можете добавить визуализированный html? – Niklas

+0

, и если вы выполняете 'setTimeout (function() {fade (e)}, 10);' вместо этого? – mplungjan

+2

Как в сторону, вам следует избегать передачи строки в 'setTimeout', так как это форма' eval'. См. ['Window.setTimeout'] (https://developer.mozilla.org/en/DOM/window.setTimeout#Syntax) в MDN для получения дополнительной информации. –

ответ

2
window.setTimeout("fade(\""+e+"\")", 10); 

У вас есть заключительная цитата и закрывающиеся круглые скобки.

+0

Ах, черт возьми ... спасибо! – Prexx

1

Если вы проверяете это в вашей любимой консоли JavaScript:

var e = "foo"; 
alert("fade(\""+e+")\""); 

... вы увидите это:

fade("foo)" 

Использование на вашу пользу тот факт, что JavaScript позволяет одиночной и двойной цитаты:

var e = "foo"; 
alert('fade("' + e+ '")'); 

Или, еще лучше, вызовите setTimeout() с эталонной функцией ИНСТЕ объявление строки (найдите некоторые примеры на связанной странице).

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