我一直在搞乱jQuery-UI 的 小部件工厂来创建一个谷歌地图小部件。
destroy
小部件工厂包括从元素中删除小部件的预构建功能。我很想知道是否有办法从谷歌地图中分离原始元素而不从 DOM 中删除元素。
我所做的大部分搜索都导致了如何从谷歌地图中删除标记和其他图层,而不是从 DOM 中删除地图。
我一直在搞乱jQuery-UI 的 小部件工厂来创建一个谷歌地图小部件。
destroy
小部件工厂包括从元素中删除小部件的预构建功能。我很想知道是否有办法从谷歌地图中分离原始元素而不从 DOM 中删除元素。
我所做的大部分搜索都导致了如何从谷歌地图中删除标记和其他图层,而不是从 DOM 中删除地图。
我认为最简单的方法是在原始 div 中创建内部 div 并为内部 div 初始化地图。销毁地图时,只需删除内部 div 即可。
var $inner = $('<div style="width: 100%; height: 100%"></div>').appendTo('#map_div');
// creation:
var map = new google.maps.Map($inner[0], { ... });
// removal:
$inner.remove();
没有jQuery:
document.getElementById('map_div').innerHTML = '<div id="inner_map_div" style="width: 100%; height: 100%"></div>';
// creation:
var map = new google.maps.Map(document.getElementById('inner_map_div'), { ... });
document.getElementById('map_div').innerHTML = ''; // removal
除了.remove()
,您还可以在包含地图的 jQuery 函数.empty()
上使用。div
此功能删除所有内容,但div
. 所以你不需要有一个 external 和一个 inner div
。