JQuery "on" и Coffeescript

В JS у меня есть

$("#index").on({
  click : function() { // do something useful with $(this)....}
},"li.superclass");

Как я могу описать это с помощью CoffeeScript?

Ответ 1

Это почти то же самое:

$("#index").on click: ->
  alert ("hi")
, "li.superclass"

Ответ 2

mybe это вы хотите:

$("#index").on 
    click:->
        alert "hi"
    "li.superclass"

но я думаю, что это более понятно:

events = 
    "click":->
        alert "hi"
$("#index").on events, "li.superclass"

Ответ 3

Если вам нужно использовать this/@ в обработчике, я думаю, что вы ищете что-то вроде стрелки жира в CoffeeScript, которое перегружает this для вас...

$('#index').on 'click', => alert(@)

Обратите внимание, что вам нужно использовать off, чтобы удалить обработчик, или он может не получить сбор мусора. Backbone 0.9 представил a listenTo функцию, которая значительно упрощает управление обработчиками событий.