在我的HTML5移動應用我用一些jQuery來隱藏或顯示這取決於用戶是否登錄或沒有一些自定義的控件:無法刪除自定義的控制,從谷歌地圖
基本的代碼是下列操作之一:
- >一個函數'createCustomControls'負責多次調用另一個函數'createCustomControl'(不帶's')。
function createCustomControls(map){
createCustomControl("about", map);
if(!authenticated()){createCustomControl("login", map);}
if(authenticated()){ createCustomControl("menu", map);}
if(authenticated()) {createCustomControl("list", map);}
}
function createCustomControl(type, map){
// Create a div to hold the controls
var controlDiv = document.createElement('DIV');
controlDiv.style.padding = '2px';
controlDiv.index = 1;
// Set CSS for the control border
var controlUI = document.createElement('DIV');
controlUI.style.backgroundColor = '#FFF';
controlUI.style.borderStyle = 'solid';
controlUI.style.borderWidth = '1px';
controlUI.style.cursor = 'pointer';
controlUI.style.textAlign = 'center';
controlUI.title = type.capitalize();
controlDiv.appendChild(controlUI);
// Set CSS for the control interior
var controlText = document.createElement('DIV');
controlText.style.fontFamily = 'Arial,sans-serif';
controlText.style.fontSize = '18px';
controlText.style.paddingLeft = '4px';
controlText.style.paddingRight = '4px';
controlText.innerHTML = type.capitalize();
controlUI.appendChild(controlText);
// Add event listener on click
if(type == "list"){
google.maps.event.addDomListener(controlUI, 'click', function() {
....some stuff
});
}
if((type == "menu") || (type == "login") || (type == "about")){
google.maps.event.addDomListener(controlUI, 'click', function() {
$.mobile.changePage("#" + type, "slideup");
});
}
// Add control to map
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(controlDiv);
}
這正常工作,我第一次叫「createCustomControls」:
- >「登錄」和「關於」創建自定義的控件。
當用戶登錄時,我再次調用'createCustomControls'函數。它將'login'和'about'旁邊的自定義控件(菜單,列表,關於)推到一起。
我試過幾件事情要清除TOP_RIGHT位置插入「菜單」,「列表」和「關於」問題之前擺脫「登錄」和「關於」的控制,但沒有工作....
任何想法?
你嘗試過什麼辦法呢?它應該只是一個調用map.controls [position] MVCArray的removeAt(index)與要刪除的控件的索引的問題。 – 2011-05-18 19:53:02
另一種效率較低的方法是map.controls [google.maps.ControlPosition.TOP_RIGHT] .clear(),然後添加所需的控件。 – 2011-05-18 19:54:39