Я работаю над этим некоторое время, и я, похоже, не понимаю его. У меня есть интерактивная карта jquery из Соединенных Штатов, которая, когда вы нажимаете состояние, откроет список ссылок для этого состояния. Я использую плагин US Map (http://newsignature.github.io/us-map/#usage-style-options).
Странная часть, которую я не могу понять, - это когда я нажимаю "Калифорния", jquery, который я написал для использования с плагином, работает так, как ожидалось, но когда вы нажимаете на другие состояния, это не так. Я предоставлю URL-адрес моего тестового сайта, если вы хотите сами убедиться, что он должен делать. Сначала нажмите Калифорнию, а затем закройте окно мода с помощью X в углу, затем попробуйте другое состояние, и вы увидите, что кнопка закрытия не работает. Калифорния может быть открыта и закрыта повторно без проблем.
Вот тестовый URL: http://test.sportdirections.com/restaurants.php
Вот мой код JQuery
var mouseX;
var mouseY;
$(document).mousemove( function(e) {
mouseX = e.pageX-200;
mouseY = e.pageY-500;
});
$('#map').usmap({
// The hover action..
mouseover: function(event, data){
$('#restaurant-hover-'+data.name).css({'top':mouseY,'left':mouseX}).fadeIn(500);
},
// Hover away action
mouseout:function(event, data){
$('#restaurant-hover-'+data.name).fadeOut('fast');
},
// State clicked action
click:function(event, data) {
function closeList () {
$('#loading').hide();
$('#links-'+data.name).fadeOut('fast');
}
$('#close').click(closeList);
$('#loading').show();
$('#links-'+data.name).fadeIn(1000);
}
});
Посмотрите на генерируемый html. Каждое всплывающее окно имеет тот же input
каждый с одинаковым идентификатором быть close
. Это дает вам вашу проблему, потому что у вас не может быть более одного элемента html с тем же идентификатором.
Вы создаете всплывающие окна с идентификационными links-STATE
. Посмотрите, можете ли вы сделать что-то подобное для кнопки закрытия или использовать класс, а затем выбрать jQuerys find() или parent(), чтобы закрыть всплывающее окно