jQueryのeachのreturnがうまくいかなかった
jQueryのプラグイン作ってて、以下のコードが思った通り動かなかった。
(CoffeeScript使ってます。)
$.fn.XXXX(settings) = (settings) -> this.each () -> self = $(this) switch settings.action when 'init' # Do something when 'get' return self.data 'data_key'
上のコードで、
$('selector').XXXX action: 'get'
ってしたら、selectorで選択した最初のエレメントのデータが帰ってきてほしいけど、$('select')自体が返ってくる。
マニュアル見たら、eachでreturnしたら処理を中断するみたいな事が書いてたけどな。
結局以下に書き直した。
$.fn.XXXX(settings) = (settings) -> if settings.action == 'get' return this.data 'data_key' this.each () -> self = $(this) switch settings.action when 'init' # Do something
勘違いが合ったら誰か教えて下さい。