2012-10-04 22 views

回答

1

你需要用事件将再次创建这些元素了。

我使用jQuery改善你的代码,试试这个:

function HomeControl(controlDiv, map) { 
    var menu_btn = $("<div>"); 
    menu_btn.attr('id', 'menu_btn'); 
    menu_btn.attr('title', 'Click to show the Map Navigation'); 
    menu_btn.html('<b>Menu</b>'); 
    menu_btn.css({ 
     backgroundColor: 'white', 
     cursor: 'pointer', 
     textAlign: 'center', 
    }); 

    $(menu_btn).click(function() { 
     $(controlDiv).empty(); 

     menu_state = 1; 

     var menu_nav = $("<div>"); 
     menu_nav.attr('id', 'menu_nav'); 
     menu_nav.attr('title', 'Click Map to close Menu'); 
     menu_nav.css({ 
      backgroundColor: 'white', 
      cursor: 'pointer', 
      textAlign: 'center', 
     }); 

     var accordion = $('<div id="accordion"><h3><a href="#">Change Library</a></h3> <div>Ellis<br>Engineering<br>Journalism</div><h3><a href="#">Change Floor</a></h3> <div>Ground Floor<br>First Floor<br>Second Floor<br>Third Floor<br>Fourth Floor<br></div> <h3><a href="#">Change Map</a></h3> <div>Virtual Tour<br>Video Tour<br>Study Rooms<br>Computers</div></div>'); 

     $(menu_nav).append(accordion); 
     $(controlDiv).append(menu_nav); 

     $(accordion).accordion({active: 1, autoHeight: false}); 
    }); 

    $(controlDiv).empty(); 
    $(controlDiv).append($(menu_btn).clone(true)); 

    google.maps.event.addDomListener(map, 'click', function() { 
     menu_state = 0; 

     $(controlDiv).empty(); 
     $(controlDiv).append($(menu_btn).clone(true)); 
    }); 
} 

希望这有助于。

+0

谢谢,这个固定的其他问题后,我得到了它以不同的方式工作。 – Ray

+0

我遇到的另一个问题是,autoHeight不工作(高度应该保持不变),并且手风琴被放置在菜单按钮的下方,而不是替换它在顶部 – Ray

+0

@Raymond这是因为'h3'标签。您可以使用CSS来删除此边距。 –