Rails中的Masonry Jquery-在不刷新页面的情况下无法工作 [英] Masonry Jquery in Rails - doesn't work without refreshing the page

查看:85
本文介绍了Rails中的Masonry Jquery-在不刷新页面的情况下无法工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在关注约翰·埃尔德(John Elder)的有关使用Ruby on Rails构建Pintinterest克隆的书.问题是,仅当刷新页面时,砖石网格布局"才有效.当我单击指向引脚列表的链接时,所有内容都移到左侧.

I am currently following John Elder's book about building Pintinterest clone using Ruby on Rails.The problem is that Masonry Grid Layout works only when I refresh the page. When I click the link to the list of pins, everything goes to the left side.

我试图修复涡轮链接,咖啡脚本,application.js,但是三天后我放弃了.

I tried to fix turbolinks, coffee script, application.js but I gave up after three days.

这是我的github: https://github.com/Gelin1984/Imager2018

This is my github: https://github.com/Gelin1984/Imager2018

这是我的Heroku应用程序: https://imager2018.herokuapp.com/

This is my Heroku App: https://imager2018.herokuapp.com/

咖啡脚本:

$ ->
  $('#pins').imagesLoaded ->
    $('#pins').masonry
      itemSelector: '.box'
      isFitWidth: true

application.js

//= require jquery
  //= require jquery.turbolinks
  //= require jquery_ujs
  //= require turbolinks
  //= require bootstrap-sprockets
  //= require bootstrap
  //= require masonry/jquery.masonry
  //= require_tree .

application.css

   *= require 'masonry/transitions'
   *= require_tree .
   *= require_self
  */

index.html

<div id="pins" class="transitions-enabled">
     <% @pins.each do |pin| %>

      <div class="box">
        <div class="panel panel-default">
        <%= link_to image_tag(pin.image.url(:medium)),pin %><br/>
          <div class="panel-body">
          <%= pin.description %><br/><br/>
          </div>

           <% if pin.user == current_user %>
             <div class="panel-footer">
              <%= link_to 'Edit', edit_pin_path(pin) %>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;
              <%= link_to 'Destroy', pin, method: :delete, data: { confirm: 'Are you sure?' } %>
             </div>
          <% end %>
        </div>
      </div>
    <% end %>
</div>
<div class="center">
  <%=  will_paginate @pins, renderer: BootstrapPagination::Rails %>

gemfile

https://rubygems.org'
ruby '2.5.0'

git_source(:github) do |repo_name|
  repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
  "https://github.com/#{repo_name}.git"
end

gem 'jquery-rails'
gem 'rails', '~> 5.1.4'

gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.7'
gem 'devise', '~> 4.4', '>= 4.4.1'
gem 'uglifier', '>= 1.3.0'
gem 'therubyracer', platforms: :ruby
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks'
gem 'jbuilder', '~> 2.5'
gem 'jquery-turbolinks'
gem 'paperclip', '~> 5.2', '>= 5.2.1'
gem 'masonry-rails', '~> 0.2.4' 
gem 'will_paginate', '~> 3.1', '>= 3.1.6'
gem 'will_paginate-bootstrap', '~> 1.0', '>= 1.0.1'
group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'capybara', '~> 2.13'
  gem 'selenium-webdriver'
  gem 'sqlite3', '~> 1.3.13'
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :production do
  gem 'pg', '~> 0.20'
end

非常感谢您的提示!

Blockquote

Blockquote

推荐答案

我不确定jquery.turbolinks对最新版本的Turbolinks的支持程度如何,因此您不妨尝试以下操作:

I'm not sure how well supported jquery.turbolinks is for recent versions of Turbolinks, so you may wish to try the following:

$(document).on 'turbolinks:load', ->
  $('#pins').imagesLoaded ->
    $('#pins').masonry
      itemSelector: '.box'
      isFitWidth: true

这篇关于Rails中的Masonry Jquery-在不刷新页面的情况下无法工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆