【问题标题】:JavaScript Rails code not working in application.jsJavaScript Rails 代码在 application.js 中不起作用
【发布时间】:2014-05-29 21:46:53
【问题描述】:
  $(document).ready(function() { 
    $('#client-select2').select2();
   });

如果我将上面的代码放在 application.js 中,它不会响应,但如果我将它放在 _form.html.erb 文件中,它会响应。有谁知道这是为什么?

views/orders/_form.html.erb

<script type="text/javascript">
  $(document).ready(function() { 
    $('#client-select2').select2();
   });

</script>

<%= simple_form_for(@order) do |f| %>
  <%= f.error_notification %>
    <%= f.input :code %>
    <%= f.association :client, collection: Client.all, label_method: :name, value_method: :id, prompt: "Choose a Client", required: true, input_html: { id: 'client-select2' } %>
    <%= f.submit %>
<% end %>

application.html.erb 有

&lt;%= javascript_include_tag 'application' %&gt;

【问题讨论】:

  • 我认为您需要更好地陈述您的问题以获得任何有价值的帮助。更具体地说明哪些部分不起作用。
  • 看看this helps。您可能需要将您的 javascript 包含在 jQuery 函数中。
  • @gernberg 我试图澄清我的问题,请查看上方
  • @kiddorails 指的是咖啡脚本,我没有使用任何咖啡脚本

标签: javascript ruby-on-rails ruby-on-rails-4


【解决方案1】:

原因可能是你的 application.js 之后包含了 select2 和/或 jQuery,

例如,如果订单是:

//=require_self
//=require select2
//=require jquery

jquery/select2 函数在 application.js 中将不可用,因为之前包含了 application.js。

【讨论】:

  • 我错过了 require_self,oboi。谢谢
  • 如果我将 js 代码放在 assets/javascript/orders.js 中并在 application.js 中添加要求订单,代码会起作用吗?那是做这类事情的正确方法吗?
  • 啊,如果我在 require self 下添加 require 订单,将它放在 orders.js 中就可以了,完美
猜你喜欢
  • 2013-02-06
  • 2013-10-12
  • 1970-01-01
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多