2013-03-04 84 views
1

我得到這個問題用Ruby on Rails編寫網站。在Ruby on Rails網站上使用jquery-ui-rails datepicker。 datepicker方法沒有定義

bundle show 
* jquery-ui-rails (4.0.1) 

在應用程序/資產/ Javascript角/ application.js中

//= require jquery.ui.datepicker 

在應用程序/資產/樣式表/ application.css

*= require jquery.ui.datepicker 

在應用程序/視圖/佈局/應用。 html.erb

<%= stylesheet_link_tag "application", :media => "all" %> 
<%= javascript_include_tag "application" %> 

然後在somepag e.html.erb,我

<script type="text/javascript"> 
$(function(){ 
    $("#startdate").datepicker(); 
    $("#enddate").datepicker(); 
}); 
</script> 

當運行它,Chrome的說,

Uncaught TypeError: Object [object Object] has no method 'datepicker' 

我想,資源沒有被正確稱作是原因,因爲這個問題可以通過添加如下固定到應用程序/視圖/佈局/ 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/找到。我看到演示有沒有這些代碼的工作日期選擇器。但我不明白爲什麼它不在我的工作。任何人有任何建議?像上面提到的其他東西一樣嗎?

+0

昨天我有同樣的問題。事實證明,我不得不把=要求./timepicker高於一切。試試看。 – Benjamin 2013-03-04 09:15:23

+0

您不必包含任何其他js,但僅包含一個:'<%= javascript_include_tag「應用程序」%>',並確保您的資產文件夾包含jquery js內的javascripts。 – 2013-03-04 09:40:58

回答

2

這可能是因爲以下任一操作:

1)要包括在你的application.html.erb多個JavaScript文件放在一起時,這是導致災難。

2)您正在使用一些其他JavaScript文件,也使用$就像jquery正在使用。 有兩個相同的符號是獲得no method 'datepicker' jquery的可能原因。

另一種方法是用jQuery

OR

更換的$所有OCCURENCES只是包裝jQuery代碼insode類似以下的塊:

jQuery(function($){ 
    //all jQuery code which uses $ should be here. 
}); 
+1

謝謝,你救了我的命! – 2016-05-09 14:51:34