我们正在使用colorbox-rails gem向我们的用户显示Rails 4应用程序的注册页面。在弹出窗口的底部,我们有一个指向Already a member? Login
的链接。登录文本将用户重定向到我们的登录页面。
但是,由于Rails 4正在使用turbolinks,因此Login页面的html将在后台加载AJAX。这具有加载颜色框后面的登录页面的效果,而颜色框仍然保持打开状态。
以下是触发colorbox的html:
<%= link_to 'Sign Up', '/blank/sign_in_helper', class: 'nav-link-box',
:id => 'sign-up-link', :data => {
:colorbox => true}
%>
colorbox的HTML(sign_in_helper):
<h2>Sign Up</h2>
<%= form_for(:user, url: registration_path(:user)) do |f| %>
<div class="field">
<%= f.label :name, 'Display Name' %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.email_field :email, autofocus: true %>
</div>
<div class="field">
<%= f.label :password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %><br />
<%= f.password_field :password, autocomplete: "off" %>
</div>
<div class="field">
<%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation, autocomplete: "off" %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<p>Already a member? <%= link_to 'Login.', new_user_session_path, class: 'lightbox-close' %> </p>
<% end %>
我已经尝试将colorbox close事件绑定到链接(coffeescript),但由于某种原因,它仅在第二次点击链接时起作用:
$('.lightbox-close').click ->
$.colorbox.close()
在使用turbo-links时有没有办法做到这一点?或者是禁用特定链接的turbo链接的最佳方法?
谢谢!
答案 0 :(得分:1)
如果您要为特定链接禁用turbolink,请为其添加data-no-turbolinks
属性
<%= link_to 'Login.', new_user_session_path, class: 'lightbox-close', data: {no_turbolinks: true} %>
当使用带有javascript绑定的turbo链接时,最好执行document.ready
到page:load
上常用的代码,例如(假设您使用的是jquery){{1} }:
application.js