gpt4 book ai didi

jquery - Rails JavaScript 仅在刷新页面时加载,而不是在原始页面加载时加载,这是怎么回事?

转载 作者:行者123 更新时间:2023-12-01 01:07:04 24 4
gpt4 key购买 nike

代码在刷新页面时有效,但在原始加载时无效。

我正在构建 Pinterest 克隆。Rails 应用程序 4.1.4。

.

应该发生什么

当您从索引页中单击 Pin 图时,将会显示页面。
SHOW 页面有一些JavaScript,可以调整图片/DIV 的大小

.

问题:

几乎每次我从索引页单击 Pin 图时,javascript 都不会运行(不会调整图像/div 的大小)。

但是如果我使用网络浏览器单击“刷新”,脚本似乎总是运行得很好(图像/Div 的大小调整得很好)。

.

github上的js链接: https://github.com/growthcode/pinterest/blob/master/app/assets/javascripts/pins.js.coffee

这里是 Heroku 上的试用版: https://growthcode-pinterest.herokuapp.com/

.

SHOW pin 的 html:

<div class="container">
<div class="row">
<div id="showPinContainer" class="col-xs-12">
<div id="showPin" class="well">
<%= image_tag @pin.image, class: "show-image" %>
<p class="description"><%= @pin.description %></p>
<p><%= @pin.user.name %></p>
<% if current_user == @pin.user %>
<%= link_to 'Edit', edit_pin_path(@pin) %> |
<% end %>
<%= link_to 'Back', pins_path %>
</div>
</div>
</div>
</div>

.

我在 Rails 上的 CoffeeScript 中编写了此内容,我将列出 CoffeeScript 及其“Js2coffee”转换。

CoffeeScript :

# Pin Show page
$ ->
# set jQuery object variables
$windowObj = $(window)
$showPinContainer = $("#showPinContainer")
$showPin = $("#showPin")
$showPinImg = $("#showPin img")
$showPinHeight = $("#showPin").outerHeight()
$showPinImgWidth = $showPinImg.outerWidth()

setShowPinContainerHeight = ->
if $showPinHeight > 450
$showPinContainer.outerHeight( $showPinHeight )
else
$showPinContainer.outerHeight( 450 )

setShowPinContainerWidth = ->
if $showPinImgWidth < 200
$showPinImg.outerWidth( 200 )
else if $showPinImgWidth > 300
$showPinImg.outerWidth( 300 )

setShowPinContainerSize = ->
setShowPinContainerHeight()
setShowPinContainerWidth()

setShowPinContainerSize()

.

上述 CoffeeScript 的 Js2coffee.com 转换:

$(function() {
var $showPin, $showPinContainer, $showPinHeight, $showPinImg, $showPinImgWidth, $windowObj, setShowPinContainerHeight, setShowPinContainerSize, setShowPinContainerWidth;

$windowObj = $(window);
$showPinContainer = $("#showPinContainer");
$showPin = $("#showPin");
$showPinImg = $("#showPin img");
$showPinHeight = $("#showPin").outerHeight();
$showPinImgWidth = $showPinImg.outerWidth();

setShowPinContainerHeight = function() {
if ($showPinHeight > 450) {
return $showPinContainer.outerHeight($showPinHeight);
} else {
return $showPinContainer.outerHeight(450);
}
};

setShowPinContainerWidth = function() {
if ($showPinImgWidth < 200) {
return $showPinImg.outerWidth(200);
} else if ($showPinImgWidth > 300) {
return $showPinImg.outerWidth(300);
}
};

setShowPinContainerSize = function() {
setShowPinContainerHeight();
return setShowPinContainerWidth();
};

return setShowPinContainerSize();
});
<小时/>

这是我在 Stack Overflow 上的第一个问题,因此,如果我可以提供其他任何有帮助的内容,请告诉我。谢谢!

最佳答案

尝试禁用 Turbolinks。请参阅Rails Guides documentation on Turbolinks了解更多信息。

关于jquery - Rails JavaScript 仅在刷新页面时加载,而不是在原始页面加载时加载,这是怎么回事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com