2014-04-02 73 views
1

我正在设计一个下拉菜单,菜单中有很多内容,我想在鼠标输入时使用ajax获取调用来加载所有内容。Rails ajax执行调用只是第一次

这是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调用,我需要一个解决方案,以避免每次我悬停菜单时的电话!

回答

0

笼统地回答你的问题,你需要能够determine if the dropdown has any pre-existing values调用ajax

当然,你可以使用.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()