アブストラクトであるアイテムのリストがあり、クリックすると Ajax を介して展開できます。私はCoffeescriptで次のコードを書きました:
current_open_row = null
$('li.faq-item').live 'click', (event) ->
$.post("/faqs/update_rows", {old_row_id: current_open_row, new_row_id: $(this).attr('id')}, (data) ->
replace_items data
, 'json')
current_open_row = $(this).attr('id')
これは滑らかな Coffeescript のようには読めず、「どうすればよかったのか」と考えていることに気づきますが、特に、current_open_row
クリック ハンドラーのスコープ外で変数をインスタンス化するのは奇妙に感じます。もちろん、これを行わないと、ハンドラーへのエントリ時に新しいインスタンス化が発生しますが、これは常に未定義です。
変数へのリファクタリング以外$(this).attr('id')
に、醜い、最適ではない、判読できないなどの理由で飛び出すものはありますか?
ありがとう!