Javascript在呈现部分中不工作

Javascript在呈现部分中不工作,javascript,ruby-on-rails,Javascript,Ruby On Rails,我正在尝试包含一些JS文件,并在DOM上执行JS脚本,该脚本已在部分页面中准备就绪 但它不起作用 如果我将JS代码块移动到布局页面中,它就会工作 但我不想在每个页面中执行JS代码 有什么想法吗 索引页 部分页面:_data_range.html.haml(不工作) 布局页面:layouts/application.html.haml(works!!) 我认为,最简单的方法是在布局页面上添加一个单独的JavaScript部分。这就是我所做的(简化): 创建部分views/application/_

我正在尝试包含一些JS文件,并在DOM上执行JS脚本,该脚本已在
部分页面中准备就绪

但它不起作用

如果我将
JS代码块
移动到布局页面中,它就会工作

但我不想在每个页面中执行JS代码

有什么想法吗

索引页 部分页面:_data_range.html.haml(不工作) 布局页面:layouts/application.html.haml(works!!)
我认为,最简单的方法是在布局页面上添加一个单独的JavaScript部分。这就是我所做的(简化):

创建部分
views/application/_javascript.html.haml
=javascript\u包含\u标记“common”
=javascript\u include\u标记参数[:controller]
=收益率:额外的
将此部分添加到布局的正文末尾
!!!
%html
%头
%标题=t(“现场名称”)
=呈现“布局/移动/公共_标题”
=样式表\链接\标记“应用程序”
%身体
=产量
=呈现“javascript”
现在在您的部分
\u data\u range.html.haml
中为
通过这种方式,您可以编写特定于页面的JavaScript,并将其呈现在布局中。希望这能有所帮助。

您好,您的回答很有帮助,请您简单解释一下我的代码有哪些地方不起作用?如果我把JS代码放在DOM元素之后,我想它可能会起作用。用给定的代码很难分辨。您是在js代码之前还是之后定义元素
#日期范围选择器
?我需要更多的信息。你能在你的帖子中更新
\u data\u range.html.haml
,或者在你定义
\date range picker
的任何地方更新吗?
= render 'data_range'
    %script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}
    = javascript_include_tag 'common'
    / = javascript_include_tag params[:controller]
    :javascript
      $(document).ready(function() {
        $('#date-range-picker').daterangepicker(null, function(start, end, label) {
          console.log(start.toISOString(), end.toISOString(), label);
        });
      });
!!!
%html
  %head
    %title= t("site_name")
    = render 'layouts/mobile/common_header'
    = stylesheet_link_tag    "application" 
    = javascript_include_tag params[:controller]
  %body
    = yield
    %script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}
    = javascript_include_tag 'common'
    / = javascript_include_tag params[:controller]
    :javascript
      $(document).ready(function() {
        $('#date-range-picker').daterangepicker(null, function(start, end, label) {
          console.log(start.toISOString(), end.toISOString(), label);
        });
      });
- content_for :additional_js do
  %script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}

  :javascript
    $(document).ready(function() {
      $('#date-range-picker').daterangepicker(null, function(start, end, label) {
        console.log(start.toISOString(), end.toISOString(), label);
      });
    });