如何用参数调用coffeescript函数?

时间:2016-03-29 12:28:10

标签: javascript jquery backbone.js coffeescript

我创建了一个coffescript函数,其参数如下所示:

enlargeSelectionOn : (zoneSelected) ->
  $(zoneSelected).stop().animate 
    width:450
    height:510
    1000

html部分如下所示:

 #container1
    .title1
        img(src="img/team.png")
        span.text First Title
        a(href="#")

CSS部分(带手写笔)看起来像

#container1
  width 398px
  height 490px
  float left
  margin-right 11px
  border 2px solid $color6
  background-color $color5
  border-bottom-right-radius: 50px;
  box-shadow 4px 4px 8px #aaa
  .title1
    height 53px
    width 100%
    border-bottom 1px solid $color6
    color white
    background-color $color6

当我将鼠标悬停在其上时,我创建了动画div维度的动画 所以我想用悬停事件调用它:

    'hover div#container1' : 'enlargeSelectionOn("container1")'

但它不起作用!我知道我的代码存在问题

当我没有像这样的参数调用它时

  'hover div#container' : 'enlargeSelectionOn'

它可以正常工作

但是在这种情况下,我被迫在我的函数中调用所选的div

enlargeSelectionOn : () ->
  $('div#container1').stop().animate 
    width:450
    height:510
    1000

我想使用参数,因为我将把这个函数用于不同的div容器。

1 个答案:

答案 0 :(得分:3)

我不认为你编写函数的方式是正确的语法。它应该是:

enlargeSelectionOn = (zoneSelected) ->
  $(zoneSelected).stop().animate 
    width:450
    height:510
    1000

要在悬停事件中调用此函数,您需要告诉jQuery在您的div被悬停时调用函数enlargeSelectionOn。为此,请使用以下代码:

$("div#container").hover(enlargeSelectionOn("container1"))

有关悬停功能的更多信息,请访问in the jQuery docs