2013-06-27 48 views
0

我得到一个错误,我jQuery的功能之一都没法:我jquery.timepicker.js供应商/资产/ JavaScript的,使用对象的翻译:具有使用Rails和jQuery资产管道

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

library

在我应用程序/资产/ Java脚本/ application.js中我有这个

//= require jquery.timepicker 
引入jquery文件的

。我甚至可以看到它使用chrome浏览器加载到我的检测元素中。

在我的其他文件,其中我写的功能,我有这个

jQuery -> 
    $(".time_avail").timepicker -> 

这给了我这个在浏览器:

(function() { 
    jQuery(function() { 
    return $(".time_avail").timepicker(function() {}); 
    }); 

}).call(this); 

我的视图文件确实有输入栏class

<input class="time_avail time-picker" id="hour_open_time" name="hour[open_time]" size="30" type="text" /> 

我该做什么错,值得这个错误?

+0

检查浏览器开发人员工具网络选项卡,查看是否下载/包含了timepicker库 –

+0

尝试在Firebug中控制$ .fn.datepicker()。希望你能得到的功能 – Adrian

+0

@ArunPJohny我检查了网络标签,它出现在列表中。 – hellomello

回答

0

显然,我对我的jQuery的冲突,

在我的CoffeeScript文件中的一个,我有这样的事情会...

jQuery -> 
    #more code 
    $(".time_avail").timepicker -> 

但是当我把它改成这样:

的jQuery - > #more代码

$.noConflic() 
    jQuery(document).ready ($) -> 
    $(".time_avail").timepicker -> 

它的工作原理...没有t确定这是否是正确的方式,但我终于可以看到点击输入字段的时间

0

当我想向jQuery添加一个新方法时,我遇到了同样的问题,并且使用了以下(从andrewliu自己的答案解除):

application.js.coffee:

jQuery -> 
    $.noConflict() -> 
    $.fn.isOnScreen = -> 
     win = $(window) 
     viewport = 
     top: win.scrollTop() 
     left: win.scrollLeft() 

     viewport.right = viewport.left + win.width() 
     viewport.bottom = viewport.top + win.height() 
     bounds = @offset() 
     bounds.right = bounds.left + @outerWidth() 
     bounds.bottom = bounds.top + @outerHeight() 
     not (viewport.right < bounds.left or viewport.left > bounds.right or viewport.bottom < bounds.top or viewport.top > bounds.bottom) 

所以,基本上,关键是包裹noConflict()里面你额外的jQuery方法。虽然,我不知道为什么这是必要的。也许别人可以解释。