Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.02.2013, 12:20
Аспирант
Отправить личное сообщение для modestes Посмотреть профиль Найти все сообщения от modestes
 
Регистрация: 12.04.2012
Сообщений: 43

Карта с маркерами и событие клик
Приветствую

Есть карта http://modestes.ru/test
При клике на область карты она выделяется и снизу появляется контактная информация которая относится к этой территории.
На карте есть маркеры, которые изначально все показаны, задача в том чтобы помимо клика на область карты, можно было еще кликнуть и на маркер, а далее точно так же с областью, показывается блок с контактной инфой внизу.
Т.е. коротко говоря, нужно тоже самое что и по клику на область, только еще и для маркеров.

Проблема в том что не могу разобраться в чужом коде, (с jquery плохо знаком)
Помогите разобраться, и привязать контактную инфу по клику на маркеры


Вот весь скрипт отвечающий за карту

var arCounties = false;

$(function(){
$(".contacts_list > li.col_left").hide();
	// Contacts map
	if ( $(".contacts_map").length > 0 ) {
	
		$("#layer2")
//			.bind("mouseout", function(){ $(this).attr("class",""); })
			.each(function(){

				var layer1 = $("#layer1");
				var	layer2 = $(this);
				
				mapObj = $(this).attr("usemap");
				
				if (mapObj.indexOf("#") != 0)
					mapObj = mapObj.substr(mapObj.indexOf("#"))
				

				$("area", mapObj) //Это сам объект, территория на карте
					.hover(
						function(){
							layer1.addClass($(this).attr("href").substring(1));
						},
						function(){
							layer1.removeClass($(this).attr("href").substring(1));
						}
					)
					.click(function(){
						var strHref = $(this).attr("href").substring(1);

						layer2
							.removeClass()
							.addClass("contacts_map " + strHref+"_active");

                                                //Показа и скрытие маркеров
						$(".b_map_ie > i", ".map").hide();
						$(".m_" + $(this).data('class').toLowerCase()).show();

						//alert($(this).data("class"));
						
/*Тут как я понял по событию клик на определенной территории, выполняется этой участок, который выводит контактную инфу.*/
						var regionSTR = $(this).data("class");
						
                                                 
						$("li", ".contacts_list")
							.filter(".cb").remove().end()
							.hide()
							.filter("[rel='"+regionSTR+"']")
							.show()
							.removeClass("col_left, col_right")
							.filter(":visible")
							.each(function(i){
								$(this).addClass(i%2==0?"col_left":"col_right")
	
								if (i%2==1 && i>0)
									$(this).after('<li class="cb"></li>');
						});
						
						
						return false;
					})
			})
	}

/* 
Это уже я добавил для теста, клик по маркеру срабатывает, но как привязать появление контактной информации для соответствующей территории, не пойму

						$(".b_map_ie > i", ".map").click(function(){
						  alert('Вы нажали на элемент "foo"');
						});
*/

});

Последний раз редактировалось modestes, 11.02.2013 в 12:50.
Ответить с цитированием
  #2 (permalink)  
Старый 11.02.2013, 13:34
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Дайте меткам те-же классы что и area и один общий класс, тогда:

$('.label').click(function() {
  var class = $(this).attr('class').replace('label ');
  $('area.'+class).click()
})


Где label - общий класс меток и этот класс стоит перед классом общим с классом area.

Последний раз редактировалось tsigel, 11.02.2013 в 13:40.
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2017, 15:51
Новичок на форуме
Отправить личное сообщение для ks123 Посмотреть профиль Найти все сообщения от ks123
 
Регистрация: 25.10.2017
Сообщений: 1

нашла такую карту https://www.plerdy.com/ru/ интересно как она работает
может кто-то пробовал?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
в содержимом окна FancyBox не работает событие .click() rafic jQuery 4 01.11.2011 16:59
Jquery событие если сделан клик за елементом! shureg Библиотеки/Тулкиты/Фреймворки 1 07.05.2011 20:03
Помогите сменить событие .hover на .click serdeles jQuery 2 22.11.2010 17:07
вызвать принудительно событие olgatcpip Общие вопросы Javascript 5 13.11.2009 11:07