Javascript 代码有时只运行

标签 javascript html css ruby-on-rails heroku

我找到了一个 Ruby on Rails Web 应用程序 here

Github repo here

它动态地将数据添加到不同的列。因为我想让网格布局 (Bootstrap) 即使在列高相同的情况下也能响应,所以我使用了一种 Javascript 方法,它位于主体末尾之前的脚本标签之间。

$(document).ready(function() {
var heights = $(".prodcol").map(function() {
    return $(this).height();
}).get(),

maxHeight = Math.max.apply(null, heights);
$(".prodcol").height(maxHeight);
});

此代码在使用 Chromium 或 Firefox 的 Xubuntu 开发服务器上运行良好。当上传到 Heroku 并使用 Windows 和 Chrome 或 Firefox 时,相同的高度列脚本有时有效或有时无效(通过刷新页面)。否则,列将具有不同的高度。我已经尝试将脚本更改为 onload()、load() 和可能的其他监听器,但这种方式根本不起作用。

我觉得很奇怪,它只是有时有效,而且它与 Chromium 完美配合。有人能指出它是什么吗?感谢您的帮助,我已经被困在这个问题上好几个小时了,我慢慢地变得绝望了。

编辑:现在我决定使用固定高度并限制列类的字符限制和 img 大小,因为到目前为止无法解决问题,因此 Heroku 链接将正确显示。

最佳答案

对于 turbolinks,我发现使用 $(document).ready 会导致问题,您可以尝试使用:

$(document).on('ready page:load',function(){})

关于Javascript 代码有时只运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35588445/

相关文章:

javascript - 浏览器如何解析前端代码中未具体引用的图标库?

javascript - 检查缩略图和图像是否存在

javascript - 在ReactJS中使用Howler读取本地声音文件

html - 如何使 Bootstrap 列在所有设备上都响应?

javascript - 如何使用 javascript/jQuery 激活菜单链接?

javascript - 我应该应用哪个 CSS 来在文本框上显示工具提示?

html - Bootstrap 中的 float div

javascript - NativeScript 中的 ClassNotFoundException 使用 .extend()

html - 在 IE11 中使用边框图像(带切片)?

php - font-face 不适用于 .htaccess 文件