所以我按下了一个按钮来执行一些 JS。但是发生的事情是在它工作的页面的第一次加载时,但是一旦我转到另一个页面并按下该新页面上的按钮,它就不起作用了。
根据 Turbolinks 文档,这是正常的 - 所以我必须进行修改。
这部分包含在这个 RailsCast 中 - http://railscasts.com/episodes/390-turbolinks?view=asciicast - 但 Ryan 给出的解决方案是在 CoffeeScript 中,我使用的是普通的旧 vanilla JS。
这是我的posts.js文件:
$(function(){
var toggleSidebar = $("#togglesidebar");
var primary = $("#primary");
var secondary = $("#secondary");
toggleSidebar.on("click", function(){
if(primary.hasClass("col-sm-9")){
primary.removeClass("col-sm-9");
primary.addClass("col-sm-12");
secondary.css('display', 'none');
}
else {
primary.removeClass("col-sm-12");
primary.addClass("col-sm-9");
secondary.css('display', 'inline-block');
}
});
});
$(document).on('page:load');
Run Code Online (Sandbox Code Playgroud)
根据 RailsCasts,这是他们的建议:
ready = ->
$('.edit_task input[type=checkbox]').click ->
$(this).parent('form').submit()
$(document).ready(ready)
$(document).on('page:load', ready)
Run Code Online (Sandbox Code Playgroud)
当我在我的底部尝试这个时posts.js:
$(document).ready();
$(document).on('page:load', ready());
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Uncaught ReferenceError: ready is not defined
Run Code Online (Sandbox Code Playgroud)
关于如何获得这个的想法?我很确定它很简单,但是我几乎没有 …
我有一个看起来像这样的目录结构:
- lib
- yp-crawler (directory)
- file-a.rb
- file-b.rb
- file-c.rb
- yp-crawler.rb
Run Code Online (Sandbox Code Playgroud)
我的lib/yp-crawler.rb文件看起来像这样:
require "yp-crawler/file-c"
require "yp-crawler/file-b"
require "yp-crawler/file-a"
module YPCrawler
end
Run Code Online (Sandbox Code Playgroud)
当我尝试通过执行以下操作在命令行运行我的文件时:
ruby lib/yp-crawler.rb
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
`require': cannot load such file -- yp-crawler/file-c (LoadError)
from .rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from lib/yp-crawler.rb:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)
什么可能导致这种情况?
我有以下内容:
<div id="view">
<div id="navbar">
Placeholder Text
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想在'navbar'中设置文本样式.但是,在样式表中名为"navbar"的文档中还有另一个div?
我以为它是这样的:
#view#navbar {
font-style: normal;
...etc
}
Run Code Online (Sandbox Code Playgroud)
但那没用.
思考?
你可以在这里看到实现.
我希望能够使用键盘上的左右箭头循环显示图像.我怎么做,使用jQuery或CSS?
HTML看起来像这样:
<div id="slider-code">
<a class="buttons prev" href="#"></a>
<div class="viewport">
<ul class="overview">
<li><img src="images/red-stripe.jpg" /></li>
<li><img src="images/red-stripe-bw.jpg" /></li>
<li><img src="images/red-stripe-red.jpg" /></li>
<li><img src="images/red-stripe-dark.jpg" /></li>
<li><img src="images/red-stripe.jpg" /></li>
<li><img src="images/red-stripe-red.jpg" /></li>
<li><img src="images/red-stripe-dark.jpg" /></li>
</ul>
</div>
<a class="buttons next" href="#"></a>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
#slider-code {
height: 125px;
overflow:hidden;
margin: auto; /* top, right, bottom, left */
}
#slider-code .viewport {
/* margin-left: auto; -- With this enabled, the arrows don't work.
margin-right: auto; */
margin: 0 auto; /* top, …Run Code Online (Sandbox Code Playgroud) 说我有这样的东西:http : //jsfiddle.net/Dtsjh/
如何将每个单元格中的数字对齐到每个单元格的左上角 - 而不对齐单词?
最好只使用 HTML/CSS - 但如果你不能做任何这些,那么 jQuery 就可以了。
当我这样做时thin start,这是我得到的错误:
$ thin start
>> Using rack adapter
/.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require': no such file to load -- rest_client (LoadError)
from /.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `block in require'
from /.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `block in load_dependency'
from /.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:596:in `new_constants_in'
from /.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:225:in `load_dependency'
from /.rvm/gems/ruby-1.9.2-p0/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require'
from /.rvm/gems/ruby-1.9.2-p0/gems/stripe-1.5.13/lib/stripe.rb:9:in `<top (required)>'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `block (2 levels) in require'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `block in require'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require'
from /.rvm/gems/ruby-1.9.2-p0/gems/bundler-1.0.7/lib/bundler.rb:112:in `require'
from /app/config/application.rb:7:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in …Run Code Online (Sandbox Code Playgroud) 所以在我application.html.erb看来,我的导航结构看起来像这样:
<div id="navigation">
<ul class="pills">
<% if current_page?(:controller => 'welcome', :action => 'index') %>
<li><%= link_to "Profile", vanity_path(:vname => current_user.username) %></li>
<li><%= link_to "Settings", settings_path %></li>
<li><%= link_to "Sign Out", signout_path %></li>
<% elsif !current_page?(:controller => 'welcome', :action => 'index') %>
<li><%= link_to "Home", root_path %></li>
<li><%= link_to "Profile", vanity_path(:vname => current_user.username) %></li>
<li><%= link_to "Settings", settings_path %></li>
<li><%= link_to "Sign Out", signout_path %></li>
<% end %>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
但是,我想要做的是,一旦它们出现在导航中的任何页面上,它就会将类应用于active相应的链接.
因此,例如,如果用户在mydomain.com/johnbrown哪个Profile链接上,则rails helper看起来像这样: …
所以我想要做的是确定当前链接是否"活动",即用户是否只是点击了此链接.
如果是,那么我想应用class=selected到该<li>项目.
所以这就是我正在使用的:
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如果选择了链接,我希望<li>看起来像这样:
<li class="selected"><a href="#">Link 1</a></li>
所以唯一的区别是,有一个类应用于它,而另一个没有.
我想在一个erb文件中这样做.所以Ruby会成为首选的语言......但是,它不是Rails(确切地说是Sinatra).
谢谢.
编辑1
使用jQuery可能是必要的,这很好.
假设我的集合中有16个对象,我想创建4行,每行4个.
我如何使用partials?
一种方法是在主页面上使用一个部分,并使每个部分呈现部分.然后在那部分内部,有4个对象 - 但我如何实际做到这样,它不重复对象和所有这些好东西?
所以我想的结构是局部的(产生4行),而每个部分是另一个并排产生4个物体的部分.
但不太确定如何解决这个问题.
建议?
这是我想要的输出:
<button type="submit" class="btn btn-large btn-search btn-primary">
<i class="icon icon-search"></i> Find Your Apartment
</button>
Run Code Online (Sandbox Code Playgroud)
如果我这样做是为了一个链接,而不是一个按钮,我可能会做这样的事情:
<%= link_to root_path do %>
<i class="icon icon-search"></i> Find Your Apartment
<% end %>
Run Code Online (Sandbox Code Playgroud)
但鉴于我正在使用Rails表单助手,我不太确定如何使用f.submit.
我试过了:
<%= f.submit, :class => "btn btn-large btn-search btn-primary" do %>
<i class="icon icon-search"></i> Find Your Apartment
<% end %>
Run Code Online (Sandbox Code Playgroud)
这给了我一个语法错误.
思考?
编辑1:
对于它的价值,这不会给我语法错误,但它不会呈现图标或"查找您的公寓"文本:
<%= f.submit "Find Your Apartment", :class => "btn btn-large btn-search btn-primary" do %>
<i class="icon icon-search"></i> Find Your Apartment
<% end %>
Run Code Online (Sandbox Code Playgroud)