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