2014-04-02 103 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()