以下の様な外から叩ける関数を持ちたい。
即時関数として1度最初に動いて欲しいが、あとから動いてもらうために叩くことがあるので外に出しておきたい。また、引数を与えたいが、初回起動時は無いのでデフォルト引数をつけておく。また内部はjQueryを使うのでjQuery.readyまで待つために$ ->
で囲っておく。
coffeescript
1@globalFunc = do ( hoge = '#hoge', fuga = '#fuga' ) -> 2 $ -> 3 $(hoge).animate({~}) 4 console.log hoge+' and '+fuga
この場合、初回は問題なく動く。が、他のjsやコンソールから叩いた場合、jQueryの評価結果がかえってくるが、中に入ったアニメーションは動かない。
> globalFunc <- [#document] > globalFunc() <- Uncaught TypeError: globalFunc is not a function(…) > globalFunc( 'header', 'fuu' ) <- VM3695:2 Uncaught TypeError: globalFunc is not a function(…)
どうやら do
を使う時点で無名関数でラッピングされてしまうのが問題のようなのですが、この欲求を叶えるステキな書き方があれば教えて下さい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/28 05:05