2013-06-27 81 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方法。雖然,我不知道爲什麼這是必要的。也許別人可以解釋。