Показать сообщение отдельно
  #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.
Ответить с цитированием