我的 /assets/javascripts/leads.js.coffee
jQuery ->
getRowColour = (status) ->
switch status
when "rejected" then return '#FFA500'
when "confirmed" then return '#C0C0C0'
when "didn't connect" then return '#90EE90'
else return '#FFFFFF'
这在我的 /views/leads/index.html.erb
中<%= f.select(:status, ["to call","didn't connect","confirmed","rejected"], {:selected => lead.status}, :onchange => "$('#lead_form_#{lead.id}').submit();document.getElementById('lead_row_#{lead.id}').style.backgroundColor=getRowColour(#{lead.status});") %>
<% end %>
可以看出,f.select中的onchange函数有一个javascript,它调用我的coffeescript文件中的函数。
请告诉我哪里出错了?
答案 0 :(得分:7)
when
和else
语句需要缩进一级而不是切换。
jQuery ->
getRowColour = (status) ->
switch status
when "rejected" then return '#FFA500'
when "confirmed" then return '#C0C0C0'
when "didn't connect" then return '#90EE90'
else return '#FFFFFF'
此外,switch
是CoffeeScript中的表达式,也是函数中的最后一个表达式,您无需在return
之后添加when
。