从RubyonRails视图调用javascript函数
我一直在找,但找不到任何对我有帮助的东西 我有一个文件countdown.js app/assets/javascript/countdown.js从RubyonRails视图调用javascript函数,javascript,ruby-on-rails,Javascript,Ruby On Rails,我一直在找,但找不到任何对我有帮助的东西 我有一个文件countdown.js app/assets/javascript/countdown.js // Total seconds to wait var seconds = 11; function countdown() { seconds = seconds - 1; if (seconds < 0) { // Chnage your redirection link here se
// Total seconds to wait
var seconds = 11;
function countdown() {
seconds = seconds - 1;
if (seconds < 0) {
// Chnage your redirection link here
seconds = 11;
window.setTimeout("countdown()", 1000);
} else {
// Update remaining seconds
document.getElementById("countdown").innerHTML = seconds;
// Count down using javascript
window.setTimeout("countdown()", 1000);
}
}
// Run countdown function
countdown();
我想在index.html.erb文件上调用这个函数。我该怎么办?你的js功能不好: 首先,你试着在内部调用倒计时 然后,对于倒计时,应该使用setInterval而不是setTimeout 所以你可以做更多类似的事情:
//assets/javascript/countdown.js
function countdown() {
var seconds = 11
setInterval(function() {
if (seconds < 1) {
seconds = 11
}
seconds -= 1
document.getElementById("countdown").innerHTML = seconds + " seconds"
}, 1000);
}
window.onload = function() {
countdown();
};
并且您的application.js在布局中链接:
#layouts/application.html.erb
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
现在,您可以在index.html.erb的div中显示倒计时,id=countdown您是否将js文件链接到应用程序?加载项如果不起作用,请确保指定正确的路径。我可以问一个新问题吗?我想在我的div上获得这一秒并保存在我的控制器中。我怎么能做到?我真的不明白你说的秒是什么意思。如果要将视图数据传递给控制器,则需要使用参数或更复杂的js和ajax。我的意思是当我点击一个按钮得到我的倒计时的实际值时,它已经显示在我的DIV上,并保存这个值。
#layouts/application.html.erb
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>