Ваш класс unhover должен идти после вашего состояния при наведении, поскольку псевдокласс переопределит его. Класс unhover может оставаться включенным, и когда кто-то размывает фокус, он снова удаляет класс, создавая впечатление, что он всегда находился в выключенном состоянии во время перехода ссылки в другое место.
<script>
$( document ).ready( function() {
$('ul.social-links').on('click', 'a', function(){
$(this).addClass('unhover');
}).on('blur, mouseout','a', function(){
$(this).removeClass('unhover');
});
</script>
Тогда ваш CSS должен быть в следующем порядке:
a {
color: #202020;
opacity: 1;
background: url('img/icons/social.png') no-repeat 0 0;
transition: all 0.5s ease-in-out;
}
a:hover,
a:focus,
a:active {
color: #ff0000;
opacity: 0.5;
background: url('img/icons/social.png') no-repeat -100px 0;
}
a.unhover {
opacity: 1;
background: url('img/icons/social.png') no-repeat 0 0;
color: #202020;
}