Листовка с несколькими слайдерами - PullRequest
0 голосов
/ 15 апреля 2020

Я использую этот плагин https://github.com/dwilhelm89/LeafletSlider, я пытаюсь создать 2 ползунка и объединить их, но не знаю, как мне это сделать. Спасибо за чтение моего вопроса и извините, потому что мой engli sh плох.

Вот мой контроль ползунка кода:

$.getJSON("{% url 'hostel' %}", function (json) {

            hostel_datasets.addData(json);

            //For a Range-Slider use the range property:
            sliderControl = L.control.sliderControl({
                    position: "topright",
                    layer: hostel_datasets, 
                    timeAttribute: "price",
                    //isEpoch: true,
                    showAllOnStart: true,
                    range: true
            });

            slider_date = L.control.sliderControl({
                    position: "topright",
                    layer: hostel_datasets, 
                    timeAttribute: "updated_at",
                    //isEpoch: true,
                    showAllOnStart: true,
                    range: true
            });

            //Make sure to add the slider to the map ;-)
            map.addControl(sliderControl);
            map.addControl(slider_date);

            sliderControl.options.markers.sort(function(a, b) {
                return (a.feature.properties.price > b.feature.properties.price);
            });

            //And initialize the slider
            sliderControl.startSlider();
            slider_date.startSlider();

            var htmlObject = sliderControl.getContainer();
            var a = document.getElementById('form4');
            function setParent(el, newParent)
            {
                newParent.appendChild(el);
            }
            setParent(htmlObject, a);
        });

Мой результат: Мой img

Показывать только один ползунок.

1 Ответ

0 голосов
/ 15 апреля 2020

Этот плагин плохо закодирован ...

Когда вы смотрите в коде, вы видите, что он создает div с id и выбирает контейнер по id. Поэтому, когда вы добавляете второй слайдер, он также становится идентичным идентификатору, но когда вы вызываете .startSlider() на втором слайдере, он выбирает по идентификатору и получает только первый слайдер.

https://github.com/dwilhelm89/LeafletSlider/blob/a797b08d692b9c9deaf5602ebeb99923d8764f5e/SliderControl.js#L106

Рекомендую перезаписать плагин.

...