我在用Ruby on Rails编写网站时遇到了这个问题。
bundle show
* jquery-ui-rails (4.0.1)
在app/资产/javascript/application.js
//= require jquery.ui.datepicker
在app/资产/样式表/application.css
*= require jquery.ui.datepicker
在app/views/布局/application.html.erb
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
然后在somepage。html中。动词,I got
<script type="text/javascript">
$(function(){
$("#startdate").datepicker();
$("#enddate").datepicker();
});
</script>
运行时,Chrome显示
Uncaught TypeError: Object [object Object] has no method 'datepicker'
我认为资源没有被正确引用是原因,因为问题可以通过添加以下到app/views/layouts/application.html.erb
来解决<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
这些可以在http://jqueryui.com/datepicker/上找到。我看到了没有这些代码的日期摘取器的演示。但我不明白为什么它在我身上不起作用。有人有什么建议吗?除了上面提到的,还有什么要补充的吗?
可能是以下原因之一:
1)你在你的application.html.erb
中包含多个javascript文件,当它们放在一起时会导致混乱。
2)你正在使用一些其他的javascript文件,也使用$
就像jquery使用。有两个相同的符号是获得no method 'datepicker'
为jquery的可能原因。
另一种选择是将$
的所有出现替换为jQuery
或
就像下面这样把jquery代码包装在一个块中:
jQuery(function($){
//all jQuery code which uses $ should be here.
});