0

我是 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

  )

我的问题是....这是正确的解决方案吗?做文档,然后在“点击”旁边添加选择器?

问候

4

2 回答 2

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

})

链接以阅读有关on事件的更多信息

于 2013-03-11T05:38:07.900 回答
0

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

尽管您可以尝试委托closest existing parent在 dom 初始化期间可用的对象。

就像持有'#employee-select'( parent of this elem) 一样:

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

虽然(document)是页面中所有 elem 的父级,所以它绝对可以正常工作。

$(document).on('click', '#employee-select',() ->
于 2013-03-11T05:40:03.967 回答