Никаких специфичных плагинов, просто дополнительные поля в админке, которые заполняет сам клиент. Данные выгружаются на страницу (см. исходный код), где их обрабатывает скрипт. Возможно, это нужно делать как-то через базу данных, но я специализируюсь чисто на фронтенде, не особо в этом разбираюсь.
В основном, вам нужен раздел касательно меток, в частности, метод setMap либо setVisible, которые служат для установки/удаления маркеров с карты. Вам следует понять, что сама сортировка меток никак не связана с Google Maps API, она делается на обычном ванильном javascript (либо на js-библиотеке, напр., JQuery). От Google Maps API там только использование вышеприведённых методов setMap или setVisible. Вот, как это делал я в одном из своих проектов. Возможно, не самая лучшая реализация, но вполне рабочая.
О встроенной валидации я читал и немало. Она несомненно хороша, но не даёт той гибкости, которую можно получить с js (например, пользовательские сообщения об ошибках или единый вид этих ошибок в разных браузерах). Насчёт нецелесообразности проверки всех форм - согласен, тут меня что-то не в ту степь понесло. Спасибо.
Мария Коробкоголовых, смотрите примеры, которые я скинул. Визуально надо такие же карточки товара, но с более гибкой реализацией (без указания высоты карточки и чтобы она выглядела целостной).
Что непонятного, я же привёл 2 сайта в качестве примеров. При наведении на товар должно появляться скрытое содержимое, которое: а) не должно влиять на соседние карточки; б) визуально должно быть частью карточки, то есть иметь с ней бесшовное соединение. Главная загвоздка в том, что карточка с тенью и не получается сделать бесшовную структуру.
Мне кажется, автору рановато смотреть в эту сторону.
Да, я только начал изучать Javascript, определённо рано.
Сергей Соколов, Владимир, у всех передаваемых объектов будет данный метод. Перехватывать ошибки пока не научился, да и код вряд ли будет использоваться другими разработчиками, поэтому передача "случайных" аргументов исключена. Тем не менее, возьму это на заметку.
Для большей совместимости я пишу код со старым синтаксисом, так что одной строкой не выйдет. Насчёт правильного именования переменных приму к сведению. А почему "дичь"? Код ведь работает, какой смысл в ещё одном цикле?
Да, но ведь можно сделать через переменную:
var handler = openInfoWindow(someWindow, someContent, someMarker);
google.maps.event.addListener(marker, 'click', handler);
google.maps.event.removeListener(marker, 'click', handler);
Владимир Проскурин, спасибо за ответ. Виталий, я обеими руками за за чистый и понятный код (хоть первый вариант вполне приемлемый с точки зрения читабельности), но тут вопрос больше о производительности.
А с точки зрения оптимизации? Есть ли какой-то профит от кеширования значения или он настолько мал, что на это не стоит обращать внимание? И что мешает разработчику занести элемент в переменную в будущих версиях, если к нему надо будет обращаться многократно?