我已经创建了一个Rails 4应用程序,并添加了fancybox库以实现图像弹出效果.它可以正常工作,但只有在刷新页面时才能工作.如果用户没有刷新页面,那么jquery根本不起作用.我也try 过用小的jquery方法来测试它,但都是在页面刷新后才能工作.我也在使用twitter bootstrap .

我的assets资源 /应用程序.js文件:

//= require jquery
//= require jquery_ujs
//= require fancybox
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .


$(document).ready(function() {
  $(".fancybox").fancybox();
    $("#hand").click(function(){
     if($("#check6").is(':visible'))
     {
      $("#check6").hide();
      }
     else
     {
      $("#check6").show();
      }
    });
});

推荐答案

Okay, I think I understand your problem enough to provide an answer. The thing about using turbolinks is that most plugins and libraries that bind to the document ready event stop working, since turbolinks prevents the browser from reloading the page. There are tricks to fix those issues, but the easiest way to fix it is to use jquery.turbolinks.

要使用它,只需将此添加到Gemfile:

gem 'jquery-turbolinks'

这是你的assets/javascripts/application.js文件:

//= require jquery.turbolinks

你应该可以走了.

FYI:你不需要使用turbolinks,但它很有用,它可以通过避免整页刷新来加快请求速度.Turbolinks通过AJAX获取您单击的链接的内容,并将其呈现在同一页面上,从而消除了重新加载assets资源 (JS和CSS)的开销.试着让你的页面使用它.在使用上一段中的库时,我没有遇到真正的问题.页面上的CSS和JS越多,使用TurboLink得到的改进就越大.

Jquery相关问答推荐

如何用each替换元素的attr href

在 JQuery DataTable 中通过按钮单击传递 ID

退出 jquery.each 循环后

如何限制select2中的字符?

DataTables - this.api 用于回调函数中的多个表

使用 jQuery,当用户仍在编辑该字段时,如何将文本字段的第一个字母大写?

如何使用 jQuery 重置 Select 元素

使用 jQuery 更改 CSS 类属性

jQuery ajax() 使用成功、错误和完成与 .done()、.fail() 和 always()

window.onbeforeunload 和 window.onunload 在 Firefox、Safari、Opera 中不起作用?

如何正确卸载/销毁 VIDEO 元素

按百分比zoom div的内容?

使用 jQuery Select 焦点文本在 Safari 和 Chrome 中不起作用

自动完成将值而不是标签应用于文本框

是否可以在 beforeunload 弹出窗口中显示自定义消息?

如何在 JavaScript / jQuery 中获取对象的属性?

jQuery.active 函数

如何获取第一个元素而不是在 jQuery 中使用 [0]?

请求的资源错误中不存在Access-Control-Allow-Origin标头

粘性侧边栏:向下滚动时固定在底部,向上滚动时固定在顶部