Интересно, может ли кто-нибудь помочь мне, пожалуйста.
Я относительно новичок в программировании на JavaScript, поэтому прошу проявить терпение.
Я создал эту страницу, которая позволяет пользователям добавлять или удалять Google Маркеры карты с помощью флажка «Категория маркеров». В дополнение к добавлению и удалению соответствующих маркеров с карты, описание каждого маркера добавляется или удаляется из боковой панели; который показан оранжевым текстом.
Если пользователь щелкнет элемент «Боковая панель», отобразится информационное окно для соответствующего маркера, и если маркер выбран, соответствующее описание в списке боковой панели будет выделено серым фоном.
Моя проблема заключается в том, что если пользователь выбирает маркер на карте, боковая панель не прокручивается автоматически до соответствующего элемента списка, как показано в примере на эта страница.
Я использую сторонний скрипт для создания полосы прокрутки, которая показана в коде ниже:
<script>
(function($){
$(window).load(function(){
$("#sidebar").mCustomScrollbar({
scrollButtons:{
enable:true
}
});
//ajax demo fn
$("a[rel='load-content']").click(function(e){
e.preventDefault();
var $this=$(this),
url=$this.attr("href");
$.get(url,function(data){
$("#sidebar .mCSB_container").html(data); //load new content inside .mCSB_container
$("#sidebar").mCustomScrollbar("update"); //update scrollbar according to newly loaded content
$("#sidebar").mCustomScrollbar("scrollTo","top"); //scroll to top
});
});
$("a[rel='append-content']").click(function(e){
e.preventDefault();
var $this=$(this),
url=$this.attr("href");
$.get(url,function(data){
$("#sidebar .mCSB_container").append(data); //append new content inside .mCSB_container
$("#sidebar").mCustomScrollbar("update"); //update scrollbar according to newly appended content
});
});
});
})(jQuery);
</script>
и это раздел кода, который связывает маркер карты и элемент боковой панели.
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
$("#sidebar a").css('background-color','');//remove sidebar links back colors
sidebarlink = $("#sidebar a:contains('"+marker.mydescription+"')");
sidebarlink.css('background-color','#DADADA');
infowindow.open(map,marker);
});
Я попытался поместить элемент overflow
в обе области, надеясь, что это решит проблему. Кроме того, я также пропустил следующие строки, чтобы посмотреть, смогу ли я найти решение:
$("#sidebar").mCustomScrollbar("update"); //update scrollbar according to newly loaded content
$("#sidebar").mCustomScrollbar("scrollTo","top"); //scroll to top
К сожалению, мои попытки не решили проблему.
Мне просто интересно, может ли кто-нибудь посмотреть на это, пожалуйста, и дайте мне знать, где я ошибаюсь.
Большое спасибо и с уважением