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.