Выбрать все элементы кроме $(this)
Ситуация вкратце: есть несколько изображений в качестве ссылок меню, которые при загрузки становятся чб. Для них определены события js: onmouseout и onmouseover, которые переводят из чб в нормальное и обратно.
js: function desaturate(img) { var img2 = Pixastic.process(img, "desaturate"); img2.onmouseover = function() { Pixastic.revert(this); } } window.onload = function (){ var img = document.getElementsByTagName('.MyClass img'); for ( i in img ){ desaturate(img[i]); } } Задача: нужно выделить одну активную ссылку (страница не перезагружается), т.е. сделать картинку цветную, а все остальные опять чб. Создал событие по клику, попытался манипулировать атрибутами <img>, получается только выделить, а вот перевести ее обратно при клике на другую картинку — нет. Пробовал реализовать это через jQuery так: $(".MyClass a img").click(function () { $(".MyClass a img").attr({onmouseout: "desaturate(this);"}); $(this).removeattr("onmouseout"); }); Добавляем событие onmouseout для всех картинок (переводит в чб по событию). Удаляем событие onmouseout для текущей картинки (не переводит в чб) Вообще, очень интересно, возможна ли такое обращение к элементам и в такой последовательности? Возможно ли каким-либо способом выделить все элементы, кроме кликнутого и присвоить им что угодно (стиль и т.д.)? |
Если нужные элементы имеют одного и того же родителя, то можно использовать nextAll и prevAll относительно опорного (this).
|
$("…").not(this) |
Часовой пояс GMT +3, время: 09:24. |