Клуб API Карт

Найдено на тему «Bootstrap»:
Двухуровневое меню для карты и Bootstrap
shopgo51
11 июня 2016, 10:42

В Песочнице есть пример "Вывод списка объектов карты". Скачал, запустил локально. Всё работает. Подставил свои данные. Опять всё работает. Но захотелось в Bootstrap'е повторить. Делаю так:

<body>
<div class="container">
  <div class="row">
<div class="dropdown" style="position:relative">
	<a href="#" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">Группы объектов<span class="caret"></span></a>

</div>

  </div>
</div>
<div id="map"></div>
</body>

Далее вместо используемого в примере menu.appendTo($('body')); делаю menu.appendTo($('.dropdown'));

Карта с объектами отрисовывается. Навигация по меню работает. Но по кликам на втором уровне не показываются балуны, как в примере, а при клике на первом уровне одновременно с показом/скрытием второго уровня не показываются/скрываются метки объектов.

Для реализации навигации по меню используются два обработчика:

	$(".dropdown-menu > li > a.trigger").on("click",function(e){
		var current=$(this).next();
		var grandparent=$(this).parent().parent();
		if($(this).hasClass('left-caret')||$(this).hasClass('right-caret'))
			$(this).toggleClass('right-caret left-caret');
		grandparent.find('.left-caret').not(this).toggleClass('right-caret left-caret');
		grandparent.find(".sub-menu:visible").not(current).hide();
		current.toggle();  // показ/скрытие submenu
//		alert('1 !');
		e.stopPropagation();
	});
	$(".dropdown-menu > li > a:not(.trigger)").on("click",function(e){
		var root=$(this).closest('.dropdown');
		root.find('.left-caret').toggleClass('right-caret left-caret');
//		alert('2 !');
        
        event.preventDefault();
		event.stopPropagation();
	});

Как мне кажется, где-то разорвалась цепочка обработчиков событий для элементов меню и геообъектов, про которую говорится в аннотации к примеру. Используемые для навигации по меню добавленные обработчики не влияют на ситуацию. Без них меню высвечивается сразу развернутым, но клик по любому из пунктов просто закрывает все уровни без изменений на карте.

В какую сторону смотреть ? Где и что нужно подправить ?

1 комментарий
Bootstrap,меню,события
МЕТКИ, yandex.API & Bootstrap
Антоний Великий
16 марта 2015, 01:24

Доброго времени суток!

Играюсь с метками, балунами и хинтами, а еще подцепил Bootstrap. Короче венегрет и каша.

Суть вопроса. Есть модальное окно (смотрим ниже) написанное с помощью Bootstrap.

Надо сделать так, что бы на клик метки вызывалось данное модальное окно. 

<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Название модали</h4>
            </div>
            <div class="modal-body">
                ...
</div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
                <button type="button" class="btn btn-primary">Сохранить изменения</button>
            </div>
        </div>
    </div>
</div>

Метка написана на JavaScript. Код метки ниже. 

var objectManager = new ymaps.ObjectManager();

    objectManager.objects.options.set('preset', 'islands#greenDotIcon');

    map.geoObjects.add(objectManager);

И еще. Данные для модали лучше бы брать из jSon файла. Ниже примерчик моего, но он настроен для стандартной метки yandex.API. 

 

{
"type": "FeatureCollection",

"features": [

{"type": "Feature", "id": 0, "geometry": {"type": "Point", "coordinates": [
55.751574, 37.573856]},
"properties": {"balloonContent": "Текст_1",
"hintContent": "Текст_2"}},

Заранее спасибо всем тем, кто поможет. Только прошу не кидаться данным ПРИМЕРОМ. Я там ничего не понял да и задачка у меня чуть сложнее будет.

Еще раз спасибо!

 

 

 

2 комментария
метка,API 2.1,Bootstrap,JSON
Карта во вкладке
Milov
15 октября 2013, 00:41

2 дня играюсь. ну никак не получается, вешаю на вкладку колбек и там вызываю myMap.container.fitToViewport();

использую вкладки бутстрапа. тут проблема http://cms.skr.net.ua/ya.html

Пробовал с вкладками jquery ui  = без проблем.

переделывать очень неохота. а веть должно работать.

 

бетмен подскажи.

4 комментария
API 2.0,карта в скрытом контейнере,Bootstrap