根据建议here,我在Ruby on Rails应用程序中有以下内联代码:
document.addEventListener("DOMContentLoaded", function(event) {
$("select#graph_line_duration").change(function(){
$("form").submit();
});
$("input#graph_duration").hide();
});
我收到错误$ is not defined
。但是,如果我点击链接转到该页面,那么代码工作正常,因此我的jquery
资产正在加载,给定足够的时间。
答案 0 :(得分:2)
试试这个:
document.addEventListener("load", function(event) { ... })
https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
在完全加载和解析文档时触发DOMContentLoaded事件,而不等待样式表,图像和子帧完成加载(加载事件可用于检测完全加载的页面)。
答案 1 :(得分:0)
查看导入的顺序,即:
//= require_self
//= require jquery
//= require jquery_ujs
答案 2 :(得分:0)
由于网络延迟,您运行时可能没有加载jQuery。
试试这个:
$(document).ready(function() {
document.addEventListener("DOMContentLoaded", function(event) {
$("select#graph_line_duration").change(function(){
$("form").submit();
});
$("input#graph_duration").hide();
});
});
这在jQuery完全加载后运行javascript,但必须在加载jQuery的<script>
标记之后出现在HTML文件中。