gpt4 book ai didi

javascript - 无法使用放置在 Ruby on Rails vendor 文件夹中的 jQuery 插件

转载 作者:行者123 更新时间:2023-11-28 04:52:53 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery 库 Knob为交互式优化系统创建一个功能齐全的表盘/仪表系统。我已将该库添加到我的 vendor 文件夹中,并将 vendor javascripts 文件夹包含在我的 application.js 中。

app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
//= require_tree ../../../vendor/assets/javascripts/.

在我看来,我添加了一些测试代码,以确保 jQuery 正常工作并且能够正常工作(我知道,我知道,关注点分离——完成后我会将 JS 移至 Assets 文件夹测试)。

app/views/static_pages/simutronx.html.erb

<% provide(:title, "The SimutronX") %>
<h1>The SimutronX</h1>
<p>Some test text</p>
<input type="text" class="dial" data-min="-50" data-max="50">
<%= javascript_tag do %>
$(document).ready(function(){
$("p").hide();
$(".dial").knob();
});
<% end %>

看起来来自documentation好像库应该将 .dial 类设置为拨号盘,但事实并非如此。相反,输入字段仍然是标准输入字段。此外,大约 50% 的时间测试文本无法在页面加载时隐藏。

可能出了什么问题?

更新

我已经检查过,似乎 jQuery 和插件至少有时是通过 Assets 管道加载的。

asset pipeline

然而,不仅插件 JavaScript 无法工作(我本可以认为这是一个库问题——尽管鉴于该库的受欢迎程度不太可能),而且有一半的时间 jQuery 仍然无法工作,即使尽管它似乎加载正确,并且代码具有文档就绪功能,这将是我对问题原因的第一个想法......

我现在也将这些 jQuery 和 jQuery Knob 插件添加到 assets.rb 中。

Rails.application.config.assets.precompile += %w( jquery-3.2.0.min.js )
Rails.application.config.assets.precompile += %w( jquery.knob.min.js )

我已将 jQuery include 标记添加到我的布局 View 中。

<%= javascript_include_tag "jquery-3.2.0.min", "application" %>

我在 View 本身中添加了 jQuery Knob 插件,simuntronx.html.erb

<%= javascript_include_tag "jquery.knob.min" %>

我在 simuntronx.html.erb View 中测试了内联 JavaScript。

<p onclick="this.style.backgroundColor='#990000'">Some more test text</p>

内联 JavaScript 似乎每次都能工作。

最佳答案

我已经找到了问题的根源,这是 Knob.js 和 kontrol.js 库本身的问题。由于当前分发文件中的错误,这些库无法解析,这反过来又导致 jQuery 间歇性无法工作,因为浏览器尝试包含插件并且失败似乎干扰了 jQuery 代码的解释本身。一旦我删除了这些,jQuery 就可以正常工作了。

我现在添加了一个不同的 js 库,它可以正常工作。

关于javascript - 无法使用放置在 Ruby on Rails vendor 文件夹中的 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42770965/

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