Привіт, при використанні табів на JQuery і компонента bitrix:maps.google.view на одній сторінці здатні спровокувати конфлікт бібліотек, після цього візуальні елементи на сторінці перестають працювати коректно. Як вирішити це завдання?
У моєму випадку, карта розміщувалася в одному з табів, це значною мірою полегшило вирішення цього питання. Пройшовшись трохи по форумах в пошуках рішення, знайшовся один варіант, який мене цілком влаштував. Суть рішення: на таб, де знаходитися карта — додається обробник події, який буде реагувати на натискання кнопки таба. Потім, по натисненню буде проводитися ініціалізація карти. Таким чином, при початковій завантаженні сторінки таби завантажуються за замовчуванням, глюків немає, після чого при переході по потрібній вкладці викликається функція инициализирующая карту.
В коді, таб виглядає таким чином:
…
…
При натисканні на таб, повинно відкриватися наступне:
…
IncludeComponent(“bitrix:map.google.view”,””,Array(
“INIT_MAP_TYPE” => “ROADMAP”,
“MAP_DATA” => $arrMapParam,
“MAP_WIDTH” => “710”,
“MAP_HEIGHT” => “500”,
“CONTROLS” => array(
“SMALL_ZOOM_CONTROL”,
“TYPECONTROL”,
“SCALELINE”
),
“OPTIONS” => array(
“ENABLE_SCROLL_ZOOM”,
“ENABLE_DBLCLICK_ZOOM”,
“ENABLE_DRAGGING”,
“ENABLE_KEYBOARD”
),
“MAP_ID” => “myMapID”,
“WAIT_FOR_EVENT” => “Y”
)
);?>
…
Все начебто просто, однак це діло у мене відмовлялося працювати коректно, працювали таби, а карта глючить, що послужило причиною виникнення цього милиці. Переглянувши код компонента карти, помітив дві функції, які знадобляться для ініціалізації. Крім того, зверніть увагу, що в параметрах виклику компонента вказано значення MAP_ID. Його необхідно ввести обов’язково.
Функція, що реагує на подію:
function loadGMap(){
init_myMapID ();
BX_SetPlacemarks_myMapID ();
}
У табі необхідно дописати обробник події onClick():
…
…
Отже, при кліці на таб, викликається функція loadGMap(), в якій проводитися ініціалізація карти. init_myMapID() – ініціалізує карту myMapID, BX_SetPlacemarks_myMapID() – встановлює точки на карті, якщо такі були. В моєму прикладі ці координати передавалися у змінній $arrMapParam, при зверненні до компоненту карти.
Додав: htmaker, 19.03.2014 р.
(Ще не оцінили)
Завантаження…
Діліться з друзями:
См. також:
Налаштування часу у VMBitrix
Рубрика: Bitrix, Linux
Видалення «кинутих» кошиків в системі Бітрікс
Рубрика: Bitrix
Використання highload-блоків в Bitrix
Рубрика: Bitrix
Як виконати SQL запит в Bitrix
Рубрика: Bitrix
Як підрахувати кількість елементів в Bitrix?
Рубрика: Bitrix
Динамічне масштабування зображень в Bitrix
Рубрика: Bitrix
Виключаємо користувача з ID=1 групи адміністраторів в Bitrix
Рубрика: Bitrix
Як скинути пароль адміністратора у Bitrix?
Рубрика: Bitrix
SQL-запити в бітрікс
Рубрика: Bitrix
Коментарі
08.07.2014 у 16:09
Спасибі! Дуже виручили — мені потрібно було три карти показувати по черзі і були проблеми з відображенням. Рішення гідно розміщення в базі знань )
Відповісти
17.07.2014 у 01:26
це здорово)
Відповісти
07.06.2017 в 20:13
Спасибі Вам! А то реально голову скрутив і саме Бітрікс код ставив, так що і з MAP_ID Ви теж допомогли!
Жмакнул на банерах в подяку! )
Відповісти