CoffeeScript - lanchester/rails_environment GitHub Wiki
RailsのviewからCoffeeScriptの関数を呼ぶ
CoffeeScript
で関数を定義するとJavascript
へのコンパイル時に(function(){...}).call(this)
のような即時間数と呼ばれるローカルな関数を定義します。これは名前空間の汚染を防ぐために有効な方法ですが、このままではview
から参照することができません。
クラスを作ってなるべく名前空間の汚染を防ぎつつview
から参照できるようにします。
# CoffeeScript
class @Myclass
myfunc: () ->
alert "hoge"
@myobj = new Myclass()
# view
<%= button_tag "go", onclick: "return myobj.myfunc();" %>
参考
class @Myclass
_hoge = 1 # privateな変数
_privateFunction = -> # privateな関数
タッチスクリーンのtouchendイベントについて
スマホ等タッチ可能なデバイスではclick
イベントではなくtouchend
を使った方がレスポンスが良いが、win8
などタッチ操作とマウス操作両方可能な場合にマウスでの操作ができなくなる。
なのでスマホではtouchend
を使い、Windows
ではclick
を使う。
var onSP = 'ontouchstart' in window && navigator.platform.indexOf("Win") == -1;
var CLICK_EVENT = onSP ? 'touchend' : 'click';
$(document).on(CLICK_EVENT, function(){
hoge
});