我有以下(简单)CoffeeScript 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插件?
答案 0 :(得分:2)
这一行:
return @each ->
@.dropkick
需要
return @each ->
$(@).dropkick
在每个jQuery回调的上下文中,this
会返回一个原始DOM元素(因此有关HTMLSelectElement的警告),而不是jQuery对象。
如果你的插件正在调用另一个插件,你需要确保在扩展jQuery之前完成DropKick插件的设置。