JQuery .on()函数与coffeescript

时间:2013-03-11 05:30:14

标签: jquery coffeescript

我是stackoverflow的新手,并想知道你是否可以使用coffescript帮助我使用.on()函数。移动.live()因为我想要一切应该是

$('#employee-select')

  .live('click', () ->
    if (!$('#employee-search-panel').is(':visible'))
      employeeLiveSearch()
      $('#employee-search-panel').slideDown()
    else
      $('#employee-search-panel').slideUp()
    end

  )

我想出的是

$(document)

  .on('click', '#employee-select',() ->
    if (!$('#employee-search-panel').is(':visible'))
      employeeLiveSearch()
      $('#employee-search-panel').slideDown()
    else
      $('#employee-search-panel').slideUp()
    end

  )

mi问题是......这是正确的解决方案吗?执行文档,然后在'click?

旁边添加选择器

此致

2 个答案:

答案 0 :(得分:0)

是的,这是正确的..但是在性能方面,使用文档中可用的静态父元素然后文档本身总是更好。

 $(document) .on('click', '#employee-select',function(){ //<--- replace document with closest static parentelement
   if (!$('#employee-search-panel').is(':visible'))
     employeeLiveSearch()
     $('#employee-search-panel').slideDown()
  else
     $('#employee-search-panel').slideUp()
  end

})

links详细了解on事件

答案 1 :(得分:0)

这在您编写时似乎是正确的,这是在页面中delegate the event to the existing parent item的方式。

虽然您可以尝试委托在dom初始化期间可用的closest existing parent

哪个包含'#employee-select' parent of this elem ):

$('parent of this').on('click', '#employee-select',() ->

虽然(document)是页面中所有elem的父级,但这样做绝对可以。

$(document).on('click', '#employee-select',() ->