Показать сообщение отдельно
  #7 (permalink)  
Старый 24.04.2014, 15:07
Интересующийся
Отправить личное сообщение для Chamus Посмотреть профиль Найти все сообщения от Chamus
 
Регистрация: 21.04.2014
Сообщений: 25

devote,
Сообщение от devote Посмотреть сообщение
для этого есть псевдо-класс давно существующий:
<style>
  a:visited {
    color: green; // если ссылка зеленая, значит по ней уже тыкали
  }
</style>
<a href="#test">Нажми меня</a>

Ну а если все же нужно привязать класс, то это делается примерно так (самый грубый вариант):
<style>
  a.active::after {
    content: "(ты тыкал меня уже)";
    padding: 0 0 0 5px;
  }
</style>
<a href="#test1" onclick="addActiveClass(this);">Нажми меня</a><br />
<a href="#test2" onclick="addActiveClass(this);">Нажми и меня</a><br />
<a href="#test3" onclick="addActiveClass(this);">И про меня не забудь</a><br />
<script>
  function addActiveClass(anchor) {
    var items = JSON.parse(window.localStorage.getItem('links') || "{}");
    if (anchor) {
      items[anchor.getAttribute('href', 2)] = 1;
    }
    for(var key in items) {
      if (items.hasOwnProperty(key)) {
        document.querySelector('a[href="' + key + '"]').className += ' active';
      }
    }
    window.localStorage.setItem('links', JSON.stringify(items));
  }
  addActiveClass();
</script>
Ух ты! Я и не надеялся.
Можете написать код вместо этого условия? Я пока несилен во всяких джейсонах.
<a href="#" class="filter">Фильтр</a>

this.listenTo(this.model, 'change filter', function (model, value) {
var value = model.get('filter');
if (value) {
	$('a.filter', this.$el).addClass('active');
} else {
	$('a.filter.active', this.$el).removeClass('active');
	}
});


if (value), то присвоить класс
else - удалить класс

$el - принадлежность ссылки к объекту. у меня несколько объектов с одинаковыми ссылками filter.

Последний раз редактировалось Chamus, 24.04.2014 в 15:25.
Ответить с цитированием