2012-08-14 32 views
1

我有以下的(簡單的)CoffeeScript的jQuery插件:CoffeeScript的jQuery插件,並試圖打電話給外部的jQuery插件

$ = jQuery 

$.fn.extend 
    schoolSelect: (options) -> 
     settings = 
      apiUrl: '/api/v1' 
      debug: false 

     settings = $.extend settings, options 

     log = (msg) -> 
      console?.log msg if settings.debug 

     return @each -> 
      @.dropkick 
       change: (val, label) -> 
        log val 
        log label 

而且我把它在另一個CoffeeScript的文件中像這樣:

$('.school_select').schoolSelect 
     debug: true 

但由於某種原因,我不斷收到以下錯誤: Uncaught TypeError: Object #<HTMLSelectElement> has no method 'dropkick'

我正在使用DropKick jQuery插件爲我的HTML選擇:http://jamielottering.github.com/DropKick/

如何在我的CoffeeScript jQuery插件中訪問DropKick插件?

回答

2

這條線:

return @each -> 
     @.dropkick 

有待

return @each -> 
     $(@).dropkick 

在一個jQuery回調每個的情況下,this給你回原始DOM元素(因此關於HTMLSelectElement警告),不是一個jQuery對象。

如果您的插件正在調用另一個插件,則需要確保在擴展jQuery之前完成DropKick插件的設置。

+0

我知道這很簡單!謝謝您的幫助!它現在就像一種魅力! – dennismonsewicz 2012-08-14 15:24:46