Показать сообщение отдельно
  #12 (permalink)  
Старый 06.08.2010, 18:35
Интересующийся
Отправить личное сообщение для Greendumb Посмотреть профиль Найти все сообщения от Greendumb
 
Регистрация: 06.08.2010
Сообщений: 12

Помогите разобраться
Добрый день! У меня такая проблема, но в виду моей неопытности (разбираться с этим делом я начал только с сегодняшнего утра))) решить самостоятельно мне ее не удалось.
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=AFPxDEwBAAAAULUMHwIAVKW8xZQxVL0kFj4lHUsAoB2I_gMAAAAAAAAAAAAmdPI7vVsRLfKXb1_JHhJsSRZM4w==" type="text/javascript"></script>
<script type="text/javascript">// <![CDATA[
        window.onload = function () {
            var options = {
                    tileUrlTemplate: "http://interaktivecard.com/images/maps/%z/tile-%x-%y.png",
                    controls: {
                        typeControl: true,
                        miniMap: true,
                        toolBar: true,
                        scaleLine: true
                    },
                    scrollZoomEnabled: false,
                    mapCenter: new YMaps.GeoPoint(33.8674398742517, 44.7531052865182),
                    backgroundMapType: YMaps.MapType.MAP,
                    mapZoom: 14,
                    isTransparent: true,
                    smoothZooming: false,
                    layerKey: "my#layer",
                    mapType: {
                        name: "Схема",
                        textColor: "#000000"
                    },
                    copyright: ""
                },
                map = new YMaps.Map(document.getElementById("YMapsID")),
                myData = new YMaps.TileDataSource(options.tileUrlTemplate, options.isTransparent, options.smoothZooming);

            myData.getTileUrl = function (tile, zoom) {
                return this.getTileUrlTemplate().replace(/%x/i, tile.x).replace(/%y/i, tile.y).replace(/%z/i, zoom);
            }

            var MyLayer = function () {
                return new YMaps.Layer(myData);
            }
            YMaps.Layers.add(options.layerKey, MyLayer);

            var mapLayers = options.backgroundMapType ? options.backgroundMapType.getLayers() : [],
                myMapType = new YMaps.MapType(YMaps.jQuery.merge(mapLayers, [ options.layerKey ]), options.mapType.name, { textColor: options.mapType.textColor });

            map.setCenter(options.mapCenter, options.mapZoom, myMapType);
            if (options.copyright) {
                map.addCopyright(options.copyright);
            }

            if (options.controls.typeControl) {
                map.addControl(new YMaps.TypeControl([ myMapType, YMaps.MapType.MAP, YMaps.MapType.SATELLITE, YMaps.MapType.HYBRID ], [1, 2, 3]));
            }
         
            if (options.controls.miniMap) {
                map.addControl(new YMaps.MiniMap());
            }
            if (options.controls.toolBar) {
                map.addControl(new YMaps.ToolBar());
            }
         
            if (options.scrollZoomEnabled) {
                map.enableScrollZoom();
            }
            map.addControl(new YMaps.SmallZoom());


  // Метка номер один 
     
var placemark = new YMaps.Placemark(new YMaps.GeoPoint(33.869136241394116, 44.7623886062664), {style: "default#dpsIcon"});
placemark.name = "ДПС"; // Заголовок балуна
placemark.description = "<div>Здесь находится пост ДПС</div>"; // Текст балуна
placemark.setBalloonContent('<div style="»text-align:center»" mce_style="»text-align:center»"><b>Пост ДПС</b><br>Здесь находится пост ДПС</div>');
map.addOverlay(placemark);
placemark.balloonOpen();
}
// ]]></script>
<form>
<p><span style="font-size: large;"><strong><span style="color: #800000;">Бахчисарай </span></strong></span></p>
<p><span style="font-size: small;"><em><span style="color: #800000;"><strong><span style="color: #999999;"><br /></span></strong></span></em></span></p>
<p><select id="Country" name="Country"><option value="select">Выберите раздел...</option> <option value="gos">Гос.предприятия</option> <option value="chast">Частные предприятия</option> <!-- <option value="org">Общественные организации</option> --> </select> <select id="City" name="City"><option class="select" value="select">Выберите подраздел...</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/49.html">Государсвенная и городская структура</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/50.html">Детские учреждения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/51.html">Жилищно-коммунальное хозяйство</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/52.html">Культура и искусство</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/53.html">Медицинские учреждения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/54.html">Образование и учебные заведения</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/55.html">НИИ</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/56.html">Почта, телефон, телеграф</option><option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/57.html">Религиозные организации</option> <option class="gos" value="http://interaktivecard.com/component/yandexmaps/map/58.html">Землепользование</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/81.html">Товары для животных</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/82.html">Товары народного потребления</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/83.html">Торжественные мероприятия</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/84.html">Трудоустройство</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/85.html">Транспорт</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/86.html">Туризм, спорт, отдых</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/87.html">Услуги</option> <option class="chast" value="http://interaktivecard.com/component/yandexmaps/map/88.html">Химическая продукция</option> <!-- <option class="org" value="Minsk">Все остальное</option> <option class="org" value="Bobruisk">...и так далее</option> --> </select> <input onclick="top.location.href = this.form.City.options[this.form.City.selectedIndex].value" type="button" value="Ok" /></p>
<p> </p>
</form>
<script type="text/javascript">// <![CDATA[
function dynamicSelect(id1, id2) {

// Сперва необходимо проверить поддержку W3C DOM в браузере

 if (document.getElementById && document.getElementsByTagName) {

// Определение переменных, ссылающихся на списки

  var sel1 = document.getElementById(id1);
  var sel2 = document.getElementById(id2);

// Клонирование динамического списка

  var clone = sel2.cloneNode(true);

// Определение переменных для клонированных элементов списка

  var clonedOptions = clone.getElementsByTagName("option");

// Вызов функции собирающей вызываемый список

  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);

// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список

  sel1.onchange = function() {
  refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
  }
 }
}

// Функция для сборки динамического списка

function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {

// Удаление всех элементов динамического списка

 while (sel2.options.length) {
  sel2.remove(0);
 }
 var pattern1 = /( |^)(select)( |$)/;
 var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");

// Перебор клонированных элементов списка

 for (var i = 0; i < clonedOptions.length; i++) {

// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка

  if (clonedOptions[i].className.match(pattern1) ||
  clonedOptions[i].className.match(pattern2)) {

// его нужно клонировать в динамически создаваемый список

   sel2.appendChild(clonedOptions[i].cloneNode(true));
  }
 }
}

// Вызов скрипта при загрузке страницы

window.onload = function() {
	dynamicSelect("Country", "City");
}
// ]]></script>

Работает только один скрипт из двух (первый выводит пользовательскую Яндекс.карту, второй - выпадающее меню), по одному работают хорошо. Буду очень признателен за помошь!
Наглядный пример http://interaktivecard.com/bahchisaray.html . Сейчас не работает сортировка списка.

Последний раз редактировалось Greendumb, 06.08.2010 в 18:39.
Ответить с цитированием