当我点击打开另一个弹出窗口时,如何强制关闭弹出窗口
How to force popup to close when I click to open an other one?
我创建了一个简单的映射;http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine
如果我开了一家Gîte和一家酒店,弹出窗口会一直打开。如果我打开第二个Gîte弹出窗口,第一个会自动关闭。
我希望所有弹出窗口都有这种行为。如果我点击一个项目,另一个弹出窗口会自行关闭。
我该怎么做?
配置变量:
var googlemap_setting = {
"gite": "http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine/@@hebergement_kml_view?q=gite",
"hotel": "http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine/@@hebergement_kml_view?q=hotel",
"chambre": "http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine/@@hebergement_kml_view?q=chambre-hote",
"camping": "http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine/@@hebergement_kml_view?q=camping",
"insolite": "http://preprod-pnr.terresnouvelles.com/fr/decouvertes/les-hebergements-nature-et-patrimoine/@@hebergement_kml_view?q=insolite"
}
加载地图的javascript:
$(document).ready(function() {
function initGoogleMaps() {
if ($('#map_canvas').length==0) {
return;
}
var myOptions = {
center : new google.maps.LatLng(47.26804151097223,
-0.08375246917164172),
zoom : 9,
mapTypeId : google.maps.MapTypeId.HYBRID
};
var map = new google.maps.Map(document
.getElementById("map_canvas"), myOptions);
var controlDiv = document.createElement('div');
controlDiv.style.padding = '5px';
// Set CSS for the control border.
var controlUI = document.createElement('div');
controlUI.style.backgroundColor = 'white';
controlUI.style.borderStyle = 'solid';
controlUI.style.borderWidth = '1px';
controlUI.style.cursor = 'pointer';
controlUI.style.textAlign = 'center';
controlUI.title = 'Filtrer';
controlDiv.appendChild(controlUI);
// Set CSS for the control interior.
var controlText = document.createElement('div');
controlText.style.fontFamily = 'Arial,sans-serif';
controlText.style.fontSize = '12px';
controlText.style.paddingLeft = '4px';
controlText.style.paddingRight = '4px';
controlText.innerHTML = $('#mapscontrol').html();
$('#mapscontrol').remove();
controlUI.appendChild(controlText);
var camping = new google.maps.KmlLayer(
googlemap_setting["camping"]);
var gite = new google.maps.KmlLayer(
googlemap_setting["gite"]);
var chambre = new google.maps.KmlLayer(
googlemap_setting["chambre"]);
var hotel = new google.maps.KmlLayer(
googlemap_setting["hotel"]);
var insolite = new google.maps.KmlLayer(
googlemap_setting["insolite"]);
camping.setMap(map);
gite.setMap(map);
chambre.setMap(map);
hotel.setMap(map);
insolite.setMap(map);
google.maps.event.addDomListener(controlDiv, 'click',
function(event) {
var item = event.srcElement;
if (item.checked) {
if (item.value == "camping") {
camping.setMap(map);
}
if (item.value == "gite") {
gite.setMap(map);
}
if (item.value == "chambre") {
chambre.setMap(map);
}
if (item.value == "hotel") {
hotel.setMap(map);
}
if (item.value == "insolite") {
insolite.setMap(map);
}
}
if (!item.checked) {
if (item.value == "camping") {
camping.setMap(null);
}
if (item.value == "gite") {
gite.setMap(null);
}
if (item.value == "chambre") {
chambre.setMap(null);
}
if (item.value == "hotel") {
hotel.setMap(null);
}
if (item.value == "insolite") {
insolite.setMap(null);
}
}
});
map.controls[google.maps.ControlPosition.TOP_RIGHT]
.push(controlDiv);
}
function initDataTable(){
datatableconfig = {
"iDisplayLength" : 20,
"aaSorting": [[2, "asc"]],
"oLanguage": {"sUrl": "@@collective.js.datatables.translation"},
"aLengthMenu" : [ [ 20, 30, 50, -1 ],
[ 20, 30, 50, "Tous" ] ]
};
var oTable = $('#table-hebergement').dataTable(
datatableconfig);
/* ADD COLUMN SEARCH SUPPORT */
$('#table-hebergement #head-type select').change(
function(eventObject) {
oTable.fnFilter($(this).val(), 0);
});
$('#table-hebergement #head-capacity select').change(
function(eventObject) {
oTable.fnFilter($(this).val(), 1);
});
}
initGoogleMaps();
initDataTable();
});
如果不查看代码,很难提出一些建议,但我只会在弹出窗口的最外层元素中添加一个类,比如.popup
,然后在打开一个之前关闭所有.popup
元素。在jQuery中说:
$(".popup").hide();
相关文章:
- MS Dynamics CRM 2016-打开记录时强制新建选项卡/窗口
- 当我点击打开另一个弹出窗口时,如何强制关闭弹出窗口
- 如何强制打开javascript的新选项卡/窗口
- jQuery-强制关闭外部链接窗口
- 有没有一种方法可以强制浏览器's窗口对象以重新评估鼠标所在的位置
- 如何强制Facebook登录窗口始终位于顶部
- 尝试在 JavaScript 中强制关闭窗口时未处理重定向
- 你如何强制使用 php 打开 Jquery Mobile 弹出窗口
- 如何使用浏览器扩展/插件强制聚焦浏览器窗口
- window.open() 方法与 IE 8 - 强制窗口在选项卡外部打开
- 强制javascript在选项卡而非窗口中打开新页面
- 每次强制在新的弹出窗口中打开不同的链接
- Google Drive API:强制登录弹出窗口再次登录或以其他用户身份登录
- 强制本地存储事件在同一窗口中激发
- 强制链接在同一窗口/选项卡中打开
- 强制窗口重定位通过一个表单- JavaScript
- 强制一个框架在顶部框架中打开新窗口
- HTML 5:强制窗口控件始终可见
- 在javascript弹出窗口中强制使用元标签
- 如何在ie浏览器关闭窗口前强制用户发表评论?