2012-04-09 3 views
-1

Я получаю сообщение об ошибке при объявлении переменной в Javascript и Rails 3.1. Там нет никаких проблем, если я поставлю следующий код на моем index.html.erb:Ошибка объявления переменной Javascript в Rails 3

<div id='show_time_id' style="background-color: #eee"> 

<script type="text/javascript"> 
function updateClock () 
{ 
var currentTime = new Date (); 

var currentHours = currentTime.getHours (); 
var currentMinutes = currentTime.getMinutes (); 
var currentSeconds = currentTime.getSeconds (); 

....... 


// Update the time display 
document.getElementById("clock").firstChild.nodeValue = currentTimeString; 
} 
</script> 

<script type="text/javascript"> 
$(document).ready(
    function(){ 
     setInterval('updateClock()', 1000) 
    }); 
</script> 
</div> 

<div style="width: 10em; text-align: right; margin: 20px auto;"> 
<span id="clock">&nbsp;</span> 
</div> 

Однако, если я поставил код в активах \ яваскрипт \ clock.js файл, а затем положить в <%= javascript_include_tag 'clock' %> мой index.html.erb файл, я получаю эту ошибку в консоли ошибок:

ошибка синтаксиса
http://localhost:3000/assets/clock.js?body=1
вар CURRENTTIME = новая Дата();

Это не очень важный вопрос, так как я могу оставить код в index.html.erb, но все же я хотел бы знать. Любая идея, почему это происходит?

+2

Я думаю, вам все еще нужно, чтобы показать * точно *, что вы делаете, если положить это в 'clock.js'. – Alexander

+0

Это не вопрос, но с 'document.getElementById (« clock »). FirstChild.nodeValue', когда вы загружаете весь этот код jquery, кажется, нечетным – fantactuka

+0

@Alexander: Это именно то, что я делаю, просто скопируйте этот код в clock.js, а затем в index.html.erb замените его на тег include. –

ответ

0

Я думаю, что вы написали функцию внутри тег сценария в JS файл ... написать функцию в одиночку не внутри тегов сценария ...

+0

mmm ... но я думаю, что функции Javascript должны быть объявлены в теге скрипта. Что именно ты имеешь ввиду? –

+0

Если мы напишем javascript-функции отдельного js-файла. они не должны быть объявлены в теге скрипта, потому что мы вызываем js-файл с помощью тега script. –

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