Какой самый эффективный способ вернуться в предыдущее состояние, если щелкнуть другую ссылку за пределами элемента? (JQuery) - PullRequest
2 голосов
/ 15 сентября 2011

У меня есть ссылка, которая при нажатии изменит ее состояние следующим образом:

$('.last_link').bind("click", function() {
     $(this).css({"color" : "#BBB", "cursor" : "default"});
});

Однако, если я нажму другую ссылку в этом наборе ссылок, она все равно сохранит это состояние. Мне нравится, когда ссылка переходит в прежнее состояние, когда я нажимаю другую ссылку.

Вместо того, чтобы переустанавливать предыдущее состояние .last-link, когда я нажимаю на другие ссылки, есть ли лучший, более эффективный способ просто вернуться к исходному состоянию этого селектора?

(Edit: допустим, у меня есть другие методы внутри этой функции, кроме .css (), как у меня есть цепочка методов.)

Ответы [ 2 ]

2 голосов
/ 15 сентября 2011
.high-state {
    color: #BBB;
    cursor: default;
}

a {
   color: blue;
   cursor: pointer;
}

$("a").click(function() {
    $(".high-state").removeClass('high-state');
    $(this).addClass('high-state');
});

http://jsfiddle.net/majidf/4r6XN/

2 голосов
/ 15 сентября 2011

Предполагая, что вы установили стиль, используя CSS, а не атрибут стиля, который вы можете просто сделать $('.last_link').removeAttr('style')

Это потому, что вызов .css () устанавливает значение атрибута style, поэтому, если вы удалите его, состояние будет отменено.

http://jsfiddle.net/jQ2xw/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...