Rails 4倒计时计时器



Hi-im正在尝试在rails 4应用程序中实现倒计时计时器。我从一个类似的问题中发现了keith woods插件http://keith-wood.name/countdown.html.问题是让一个简单的倒计时计时器工作,因为我在rails4中找不到任何简单的例子。我想做的就是在创建比赛时添加一个倒计时计时器,一个从10天开始的计时器,看起来像=天:小时:分钟:秒

我下载了倒计时软件包,并将*=jquery.countdown.css添加到app/assets/stylesheets/application.css

我在app/assets/javasript/application.js中添加了//=jquery.countdown.js,并在app/views/layout文件夹中添加了jquery.coountdown css和js文件。我的gem文件中还有gem"jquery rails"gem

我把我的函数放在我的competition.js.coffee文件中了吗我有

$(function () { 
$('#until2d').countdown({until: '+2d'});
});

在我的竞争观点中称之为

<div id="until2d"></div>

我的应用程序/views/competition show.html……我希望计时器出现在的位置

<p id="notice"><%= notice %></p>
<p>
<strong>Prize:</strong>
<%= @competition.prize %>
</p>
<p>
<strong>Date:</strong>
<%= @competition.Date %>
</p>
<%= link_to 'Edit', edit_competition_path(@competition) %> |
<%= link_to 'Back', competitions_path %>
<h1>Timer</h1>
<div id="until2d"></div>

我的视图/layouts/application.html.erb文件,我在其中放置了适当的标签

<!DOCTYPE html>
<html>
<head>
<title>Timer</title>
<%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="css/jquery.countdown.css"> 
<script type="text/javascript" src="js/jquery.plugin.js"></script> 
<script type="text/javascript" src="js/jquery.countdown.js"></script>
<%= yield %>
</body>
</html>

我的app/assets/javascript/application.js文件看起来像

//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= jquery.countdown.js 

如果有人能告诉我我是否走对了路,或者给我一个简单的教程,我会很感激的,谢谢

将您的application.js文件更新为:

//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require jquery.countdown.js 
//= require_tree .

您在jquery.countdown.js前面缺少require,您可能需要将其放在代码之前。

如果这是问题所在,您可能应该在Javascript控制台中看到类似"[Object]没有方法倒计时"之类的内容,或者表明问题所在的内容。此外,如果你查看javascript源列表(在浏览器开发工具或源页面中),你应该会看到jquery.countdown.js列出(假设你在开发模式下运行——因为在开发模式中,资产管道单独提供所有javascript,这样你就可以调试这类问题)。

更新

在查看了完整的代码库后,它是一个错误放置的javascript文件和一些糟糕的javascript(javascript中混合了咖啡脚本注释)的组合。上面的修复可能是基本修复,但其他项目很难在这里共享。对于任何感兴趣的人来说,都有一个拉取请求,它可以移动一些文件并进行一些清理,从而解决了问题。https://github.com/Bob-sheehy/timer/pull/1

您确定这不是Turbolinks的问题吗?

尝试初始化您的代码:

jQuery(document).on("ready page:load", function() {
$(function () { 
$('#until2d').countdown({until: '+2d'});
});
});

由于Turbolinks不会对get请求进行整页更改,因此document.ready事件永远不会触发。

相关内容

  • 没有找到相关文章

最新更新