Rails ajax第一次执行调用

时间:2014-04-02 07:21:14

标签: javascript jquery ruby-on-rails ajax coffeescript

我正在设置菜单中包含大量内容的下拉菜单,我想在鼠标输入时使用ajax get调用加载所有内容。

这是coffeescript:

class @SecondaryMenu
  constructor: ->
    @element      = $('.nav-list li')
    @mainNav      = $('.nav-list')
    @secondaryNav = $('.nav-secondary')
    @bindEvents()

  bindEvents: ->
    @element.on 'mouseenter', (event) =>
      @openSecondaryMenu()
    @element.on 'mouseleave', (event) =>
      @closeSecondaryMenu()
    @secondaryNav.on 'mouseleave', (event) =>
      @closeSecondaryMenu()

  openSecondaryMenu: ->
    setTimeout =>
      @secondaryNav.stop(true).slideDown 200 if @hoveringMenu()
    , 300

我想为第一个“鼠标输入”执行我的ajax调用:当加载内容时,我不需要另一个ajax调用,因为内容已经加载。

我不需要ajax调用,每次我将鼠标悬停在菜单上时,我都需要一个避免通话的解决方案!

1 个答案:

答案 0 :(得分:0)

要广泛回答您的问题,在致电ajax

之前,您需要能够determine if the dropdown has any pre-existing values

当然你可以使用.length来处理这个问题吗?

class @SecondaryMenu
  constructor: ->
    @element      = $('.nav-list li')
    @mainNav      = $('.nav-list')
    @secondaryNav = $('.nav-secondary')
    @bindEvents()

  bindEvents: ->
    @element.on 'mouseenter', (event) =>
      @openSecondaryMenu() if @mainNav.find("option").length < 1
    @element.on 'mouseleave', (event) =>
      @closeSecondaryMenu()
    @secondaryNav.on 'mouseleave', (event) =>
      @closeSecondaryMenu()