Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2009, 19:32
Новичок на форуме
Отправить личное сообщение для Garovsky Посмотреть профиль Найти все сообщения от Garovsky
 
Регистрация: 03.04.2009
Сообщений: 4

Оптимизация Js
Всем привет.

Пытаюсь объединить одинаковые js-функции, отличающиеся только классами, но пока ничего не выходит.
Может кто подскажет, поставит на путь истинный

$(function() {
		$(".scrollingHotSpotLeft").fadeTo("fast", .7);
		$(".scrollingHotSpotLeft").hover(function(){
			$(this).fadeTo("normal", 1);
		},function(){
	   		$(this).fadeTo("fast", .7);
		});
	});
	$(function() {
		$(".scrollingHotSpotRight").fadeTo("fast", .7);
		$(".scrollingHotSpotRight").hover(function(){
			$(this).fadeTo("normal", 1);
		},function(){
	   		$(this).fadeTo("fast", .7);
		});
	});

Последний раз редактировалось Garovsky, 03.04.2009 в 19:36.
Ответить с цитированием
  #2 (permalink)  
Старый 03.04.2009, 20:26
Интересующийся
Отправить личное сообщение для ast-ross Посмотреть профиль Найти все сообщения от ast-ross
 
Регистрация: 19.03.2009
Сообщений: 11

а разве не сказывается на скорости постоянное обращение к DOM, я сам еще новичок, но кажется можно сделать что то типа:
$(function() {
	var fadeThis=$(this);
	var spotLeft=$(".scrollingHotSpotLeft");
	var spotRight=$(".scrollingHotSpotRight");
	spotLeft.fadeTo("fast", .7);
	spotLeft.fadeTo("fast", .7);
	spotLeft.hover(
		function(){fadeThis.fadeTo("normal", 1);}
		function(){fadeThis.fadeTo("fast", .7);}
		);
	spotRight.hover(
		function(){fadeThis.fadeTo("normal", 1);}
		function(){fadeThis.fadeTo("fast", .7);}
		);
	});
Ответить с цитированием
  #3 (permalink)  
Старый 03.04.2009, 20:31
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Garovsky, создайте одну функцию, которая в качестве параметра будет принимать имя класса, и оперируйте хоть с сотней классов.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2009, 20:50
Новичок на форуме
Отправить личное сообщение для Garovsky Посмотреть профиль Найти все сообщения от Garovsky
 
Регистрация: 03.04.2009
Сообщений: 4

Сообщение от ast-ross
но кажется можно сделать что то типа:
реально ли сделать еще меньше кода? через запятую перечислить например
$(function() {
        $(".scrollingHotSpotLeft, .scrollingHotSpotRight").fadeTo("fast", .7);
        $("$").hover(function(){
            $(this).fadeTo("normal", 1);
        },function(){
               $(this).fadeTo("fast", .7);
        });
    });


Сообщение от Dmitry A. Soshnikov
создайте одну функцию, которая в качестве параметра будет принимать имя класса
думал об этом, но в таком случае мне придется добавить для пятнадцати < li > пятнадцать одинаковых классов, а это не очень хорошо.
$(function() {
		$("#nav li a").fadeTo("fast", 1);
		$("#nav li a").hover(function(){
			$(this).fadeTo("fast", .7);
		},function(){
	   		$(this).fadeTo("fast", 1);
		});
	});


Не теряю надежды найти более компактное решение и жду новых комментариев
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2009, 21:58
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

расскажи, что у тебя за список, и что ты с ним сделать хочешь?
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2009, 23:54
Новичок на форуме
Отправить личное сообщение для Garovsky Посмотреть профиль Найти все сообщения от Garovsky
 
Регистрация: 03.04.2009
Сообщений: 4

навигация (расположена на темном фоне), каждый пункт при наведении плавно затемняется.
Ответить с цитированием
  #7 (permalink)  
Старый 05.04.2009, 00:51
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

для этого нужны 2 обработчика (mouseover, mouseout)
если же у тебя есть не одно меню, выполненное в разном стиле, то тебе уже сказали
Цитата:
Garovsky, создайте одну функцию, которая в качестве параметра будет принимать имя класса, и оперируйте хоть с сотней классов
***
хотя это даже не надо, ты ж говоришь у тебя при наведении только fadeIn/fadeOut
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2009, 17:13
Новичок на форуме
Отправить личное сообщение для Garovsky Посмотреть профиль Найти все сообщения от Garovsky
 
Регистрация: 03.04.2009
Сообщений: 4

у меня несколько разных классов с одинаковым fadeIn/Out эффектом.
Ответить с цитированием
  #9 (permalink)  
Старый 06.04.2009, 11:25
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

Garovsky, сделайте класс, который будет отчечать только за fadeIn/fadeOut, и добавьте его всем элементам, которые должны демонстрировать такое поведение.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть ссылку на js Googert Общие вопросы Javascript 10 21.02.2012 17:29
"Классический" ООП в JavaScript Андрей Параничев Общие вопросы Javascript 67 25.03.2009 18:33
Загрузка дополнительного js кода с сервера Anonymous2008 Общие вопросы Javascript 5 20.11.2008 12:33
Оптимизация и Быстрый код Виталий Общие вопросы Javascript 18 24.07.2008 00:21
подключение стороннего js скрипта friend Общие вопросы Javascript 2 24.05.2008 19:51