В текущем коде $(this)
относится к маркеру вы щелкнули. Поэтому, когда вы говорите $(this).removeClass('show').addClass('hide');
, вы скрываете маркер с кликом.
Если вы даете .infobox
элементов в class
, который соответствует id
из щелкнутых маркеров ...
<div class="infobox hide termini">Bar<br>Termini</div>
... вы можете переключать их, как это ...
$('.red-point').click(function() {
$('.infobox').removeClass('show').addClass('hide');
$('.' + $(this).attr('id')).addClass('show');
});
JSFiddle Example
Лично я хотел бы дать каждому маркеру атрибут данных, содержащий нужный infowindow
текст и использовать это, чтобы заполнить один infowindow
...
<div class="infobox hide"></div>
<div class="abs red-point" id="termini" data-description="Bar<br>Termini">
<a onClick="turnGreen(event)">
<span class="num">1</span>
</a>
</div>
$('.red-point').click(function() {
$('.infobox').removeClass('hide').addClass('show').html($(this).data('description'));
});
JSFiddle Example
Вопросы ищут отладки помощь («почему этот код не работает?») должен включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). –
Вы ошиблись? '.removeClass ('hidn')' должен быть '.removeClass ('hide')'? – Hydrospanners
Изменен на орфографию, но ничего не изменил: https://jsfiddle.net/0a0yo575/11/ И Маркос Я это сделал! – DFGD