Javascript在呈现部分中不工作
我正在尝试包含一些JS文件,并在DOM上执行JS脚本,该脚本已在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代码块
移动到布局页面中,它就会工作
但我不想在每个页面中执行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);
});
});