如何从 Coffeescript 中的 Template.<template>.events api 调用 .hover

Posted

技术标签:

【中文标题】如何从 Coffeescript 中的 Template.<template>.events api 调用 .hover【英文标题】:How to call .hover from Template.<template>.events api in coffeescript 【发布时间】:2015-03-20 16:16:30 【问题描述】:

在coffeescript中使用meteor的Template..events api时,如何注册.hover所需的两个函数?

我正在尝试以下方式:

Template.<template>.events
  'hover #elementID': (
     (ev) -> console.log 'hello world'
     (ev) -> console.log 'bye world'
   ) 

【问题讨论】:

【参考方案1】:

Saimeunt 是正确的,但如果您希望它与 .hover() 完全相同,则 jquery 使用 mouseenter 和 mouseleave 代替。所以应该是:

Template.<template>.events
  "mouseenter #elementID": (event, template) ->
    console.log "mousehover", event
  "mouseleave #elementID": (event, template) ->
    console.log "mouseout", event

【讨论】:

我想看看是否可以在模板事件中直接调用 .hover ,因为通常可以在没有流星的情况下调用,但考虑到我的所有尝试以及我在这里找到的内容,似乎这是不可能,您必须直接使用 mouseenter 和 mouseleave 事件。无论如何都要为此投票。 唯一接受的事件类型是:click、dblclick、focus、blur、change、mouseenter、mouseleave、mousedown、mouseup、keydown、keypress 和 keyup。所以我们错过了一些,但没有什么是我们无法解决的;) 这对于那些不使用咖啡脚本的人来说也是有用的参考。谢谢尼克。【参考方案2】:

正确的语法是这样的:

Template.myTemplate.events
  "mouseover #elementID": (event, template) ->
    console.log "mousehover", event
  "mouseout #elementID": (event, template) ->
    console.log "mouseout", event

【讨论】:

以上是关于如何从 Coffeescript 中的 Template.<template>.events api 调用 .hover的主要内容,如果未能解决你的问题,请参考以下文章

CoffeeScript 中的函数

从 CoffeeScript 中的数组中删除一个值

Rails - 从 JavaScript 调用 CoffeeScript

如何在 Slim 模板中访问 CoffeeScript 引擎中的实例变量

从html文件中的coffeescript文件调用函数[重复]

如何从 .NET 编译 CoffeeScript?