Наконец-то jsfiddle запущен. Я разветвил вашу скрипку и обновил HTML, CSS и добавил немного jQuery.
Есть несколько способов реализовать то, что вы пытаетесь сделать здесь. Как только вы хорошо разберетесь в том, как заставить это работать, вернитесь и затяните вещи. Выбранный ответ находится на правильном пути, но он также расплывчатый; это не поможет вам понять, что не так.
Я переместил назначение класса в тег <a>
. Используйте изображение флага на фоне <a>
и измените непрозрачность <a>
, чтобы «выделить» его, когда он активен. Вы также можете использовать изображение внутри привязки <a>
и установить непрозрачность для него, если хотите, но это не предпочтительный метод.
#footer-flags ul li a{
opacity:0.4;
filter:alpha(opacity=70); /* For IE8 and earlier */
}
/* set the active class opacity to full */
#footer-flags ul li a.active {
opacity:1.0;
filter:alpha(opacity=100); /* For IE8 and earlier */
}
Далее вам не хватает какого-либо скрипта для добавления / удаления активного класса в / из <a>
, который сейчас находится в «активном» состоянии. Я проверил это с помощью jsfiddle , так что вы можете видеть, что он просто добавляет или удаляет класс из тех, которые меняются. В этом примере я использую hover, но все, что вам нужно сделать, это изменить hover на click.
<script>
$(document).ready(function(){
$(".countryFlag").hover(function(eventObject){
//remove highlight from current active
$('a.active').toggleClass("active")
//add highlight to the a that was clicked
$(this).toggleClass("active");
});
});
</script>
То, что вы делаете, задаете фоновую область <a>
для изображения в вашем CSS. Параметр непрозрачности также установлен на <a>
, поэтому фон кажется затемненным, пока не станет активным.