【问题标题】:Uncaught TypeError: Object [object Object] has no method 'datepicker'未捕获的类型错误:对象 [object Object] 没有方法“datepicker”
【发布时间】:2014-01-23 07:44:09
【问题描述】:

这是我面临的错误:

Uncaught TypeError: Object [object Object] has no method 'datepicker' myquery.js:13
(anonymous function) myquery.js:13
fire jquery.js:3049
self.fireWith jquery.js:3161
jQuery.extend.ready jquery.js:434
completed

myquery.js 的代码如下:

jQuery(function($){
    $("#datepicker").datepicker({
        dateFormat: 'yy-mm-dd'
    });
});

在我的 application.js 我有:

//= require jquery
//= require myquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

在我的 application.html.erb 我有这个:

  <%= stylesheet_link_tag    "http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css" %>
真 %>

最后我的 index.html.erb 说:

<label for="date">Date</label>
<input type="text" id="datepicker"></p>

我已经尝试了几乎所有关于 stackoverflow 的答案,但没有任何收获。请告诉我该怎么做...

【问题讨论】:

标签: javascript jquery ruby-on-rails jquery-ui datepicker


【解决方案1】:

你必须先加载jquery ui

然后加载 myquery.js

因为datepicker()是jquery ui的方法。

因此,您的 javascript 加载顺序应如下...

//= require jquery
//= require jquery_ujs
//= require myquery
//= require turbolinks
//= require_tree

【讨论】:

  • 是 //==需要 jquery_ujs 还是 jquery_uis?
  • 它是 //= 需要 jquery_ujs 或者你可以查看以下链接github.com/rails/jquery-ujs
【解决方案2】:

它接缝为jQuery UI js 文件在您使用datepicker 方法之前未加载。改变 require(jquery_ujs before myquery) 的顺序:

//= require jquery
//= require jquery_ujs
//= require myquery
//= require turbolinks
//= require_tree .

【讨论】:

    【解决方案3】:

    与写 Hasib Hasan Arnab 的要求相同 和

    $( document ).ready(function() {
      $("#datepicker").datepicker({
        dateFormat: 'yy-mm-dd'
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2014-01-08
      • 2013-04-19
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多