jQuery Backstretch在Refinery Rails App中的多个页面上显示

时间:2013-03-28 16:51:03

标签: jquery ruby-on-rails refinerycms jquery-backstretch

我安装了一个jQuery插件Backstretch并使用我的Refinery Rails应用程序。

该插件加载我在

中列出的1张图片

的application.js

    //= require 'jquery-backstretch'
$.backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjcvMjJfNTZfMjRfOTkyX3NsYXRlX2JnLnBuZyJdXQ/slate-bg.png");

我试图从我发现的一个例子开始说“使用if / else语句加载backstretch。即if($("body#about"))....else if($("body#contact")...";但是我真的不知道怎么写这个。这是我尝试的:

的application.js

    //= require 'jquery-backstretch'
if ($"body#home"($.backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjcvMjJfNTZfMjRfOTkyX3NsYXRlX2JnLnBuZyJdXQ/slate-bg.png"));
 else if ($"body#our-passion".backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjUvMDBfMTlfMjlfMzgyX2JnXzFfYmlnLnBuZyJdXQ/bg-1-big.png"));

写这个的正确方法是什么?或者有更好的方法来实现这种效果吗?

2 个答案:

答案 0 :(得分:1)

首先,为什么在id之前需要身体?即 body #home

由于#home和#our-passion都是ids,所以看起来你不需要身体。

关于你的问题: 我认为这就是你想要的,尽管你实际上想要达到的目标有点模糊:

if ($("#home").length != 0) {
  $.backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjcvMjJfNTZfMjRfOTkyX3NsYXRlX2JnLnBuZyJdXQ/slate-bg.png");
} else if ($("#our-passion").length != 0) {
  $.backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjUvMDBfMTlfMjlfMzgyX2JnXzFfYmlnLnBuZyJdXQ/bg-1-big.png");
}

我可以解释这个错误。也许你正试图为#home和#our-passion添加一个后弯?

希望这有帮助!

修改 这是我们的激情页面应该包含在HTML中:

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
  </head>
  <body>
    <div id="our-passion"></div>
  </body>
 </html>

还有其他方法可以做到这一点,但这是根据你的问题做的。

答案 1 :(得分:0)

这可以通过推荐

来实现
$(".show").backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjcvMjJfNTZfMjRfOTkyX3NsYXRlX2JnLnBuZyJdXQ/slate-bg.png");
$(".home").backstretch("/system/images/W1siZiIsIjIwMTMvMDMvMjUvMDBfMTlfMjlfMzgyX2JnXzFfYmlnLnBuZyJdXQ/bg-1-big.png");
在application.js文件中的

- 并包含正文的内容及其对应的div。

更新:

我最终在不同的视图中运行此脚本。