问题 jQuery“on”和Coffeescript


在JS我有

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

我怎么用CoffeeScript来描述这个?


3658
2017-09-20 10:26


起源



答案:


它几乎是一样的:

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

11
2017-09-20 10:33



支架太多了!摆脱代码中多余的瑕疵,〜) - Billy Moon
我不认为你可以避开选择器周围的括号,否则 .on 尝试操作选择器本身的字符串。 - Billy Moon
我可能会在两个语句中执行它,缓存jquery对象(无论如何通常都是个好主意): $index = $ "#index"; $index.on click: -> alert "hi", "li.superclass" - Billy Moon
@BillyMoon:啊,是的,你说得对。 - João Silva


答案:


它几乎是一样的:

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

11
2017-09-20 10:33



支架太多了!摆脱代码中多余的瑕疵,〜) - Billy Moon
我不认为你可以避开选择器周围的括号,否则 .on 尝试操作选择器本身的字符串。 - Billy Moon
我可能会在两个语句中执行它,缓存jquery对象(无论如何通常都是个好主意): $index = $ "#index"; $index.on click: -> alert "hi", "li.superclass" - Billy Moon
@BillyMoon:啊,是的,你说得对。 - João Silva


mybe这是你想要的:

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

但我认为这更清楚:

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

4
2017-09-20 14:18





如果你需要使用 this/@ 在处理程序中,我认为你正在寻找像CoffeeScript的胖箭一样的东西 this 为你...

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

请注意,您需要使用 off 删除处理程序或它可能不会被垃圾收集。 Backbone 0.9介绍 一个 listenTo 功能 这使得管理事件处理程序变得更加理智。


1
2018-04-25 23:21