如何从html.erb
调用JavaScript函数 application.js 中的
function displayClock() {
var digital = new Date();
var hours = digital.getHours();
var minutes = digital.getMinutes();
var seconds = digital.getSeconds();
var amOrPm = 'AM';
if (hours > 11) amOrPm = 'PM';
if (hours > 12) hours = hours - 12;
if (hours == 0) hours = 12;
if (minutes <= 9) minutes = '0' + minutes;
if (seconds <= 9) seconds = '0' + seconds;
dispTime = '<b>'+hours + ':' + minutes + ':' + seconds + ' ' + amOrPm+'</b>';
document.getElementById('time').innerHTML = dispTime;
setTimeout('displayClock()', 1000);
}
并在 home.html.erb
中displayClock();
但它没有调用函数!
答案 0 :(得分:19)
您可能需要使用正确的标记来表明您正在编写JS代码:
<script type="text/javascript">
displayClock();
</script>
另外,既然您可能使用jQuery(它在Rails中的默认设置),您可能需要确保在加载整个文档后调用该函数:
<script type="text/javascript">
$(document).load(function(){
displayClock();
});
</script>
我还建议您不要在application.js
中编写JS,并仅将此文件用作清单文件,其中包含通过Rails asset pipeline的其他脚本。
您还可以利用html.erb
文件中的javascript助手javascript_tag
<%= javascript_tag "displayClock()" %>