Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.07.2011, 16:27
Аватар для Dudo4nick
Интересующийся
Отправить личное сообщение для Dudo4nick Посмотреть профиль Найти все сообщения от Dudo4nick
 
Регистрация: 20.07.2011
Сообщений: 23

Возможно ли сделать скрипт проще?
Добрый день! Скрипт работает, но я новичок, и подозреваю, что можно было бы сделать проще. Как вы думаете?
По щелку на области карты становится видимым только тот блок, чей класс совпадает с id у "кликнутой" area:

$(document).ready(function(){
    $("area").click(function(){
	var $state = $(this).attr('id');
	$('.'+$state).addClass('active').siblings().removeClass('active')
       
    });
});

Буду рад вашим замечаниям!
Ответить с цитированием
  #2 (permalink)  
Старый 27.07.2011, 16:34
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

$(document).ready(function(){
    $("area").click(function(){

	$('.'+this.id ).addClass('active').siblings().removeClass('active')
       
    });
});


обьясните, зачем добавлять блоку класс и убирать его у потомков ? в чем магия ?
.addClass('active').siblings().removeClass('active')

Последний раз редактировалось melky, 27.07.2011 в 16:37.
Ответить с цитированием
  #3 (permalink)  
Старый 27.07.2011, 16:42
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от melky Посмотреть сообщение
обьясните, зачем добавлять блоку класс и убирать его у потомков ? в чем магия ?
.addClass('active').siblings().removeClass('active')
хм...я не понял про что ты) siblings - это смежные элементы, а не потомки, так что тут всё логично: активному элементу ставится класс, а у всех смежных он удаляется)
__________________
kobezzza
code monkey
Ответить с цитированием
  #4 (permalink)  
Старый 27.07.2011, 16:44
Аватар для Dudo4nick
Интересующийся
Отправить личное сообщение для Dudo4nick Посмотреть профиль Найти все сообщения от Dudo4nick
 
Регистрация: 20.07.2011
Сообщений: 23

Но ведь если я не уберу класс у потомков сиблингов, то у меня их станет постепенно много видимых. А нужен только один!

И да - спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 27.07.2011, 16:47
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Блин) где вы потомков нашли?)
<div>Какой то активный блок блок</div>
<div>Смежный блок</div>
<div>Смежный блок</div>
<div>Смежный блок</div>
<div>Смежный блок</div>

метод siblings выбирает все смежные блоки (ну или по фильтру указанному в методе) от активного
__________________
kobezzza
code monkey
Ответить с цитированием
  #6 (permalink)  
Старый 27.07.2011, 17:08
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

слова перепутал, прошу прощения

ну тогда запоминать прошлый эл и убирать класс у него, а не у всех разом

$(document).ready(function(){
    var last;
    $("area").click(function(){

        if( last ) last.removeClass('active');
	last = $('.'+this.id ).addClass('active');
       
    });
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать, чтоб скрипт работал во всех браузерах? Владимир Седов Элементы интерфейса 2 24.12.2010 12:19
Сделать скрипт для спецпредложений batusai Ваши сайты и скрипты 2 15.07.2010 00:16
Помогите сделать скрипт! b1shop Opera, Safari и др. 4 21.05.2010 13:54
Нужно сделать скрипт для сплит тестинга Евгений Болгов Работа 3 30.11.2009 10:49
Возможно ли создать такой скрипт Чайник Общие вопросы Javascript 4 18.09.2009 16:56