Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как оптимизировать код (https://javascript.ru/forum/jquery/27841-kak-optimizirovat-kod.html)

titans 26.04.2012 20:24

Как оптимизировать код
 
Ещё один вопрос. У меня есть такой код:
$('#note1').live('mouseover mouseout', function(event) { 
  if (event.type == 'mouseover') { 
    $('#note1').fadeTo(10,0.7); 
  } else { 
     $('#note1').fadeTo(10,1); 
  } 
});

и дальше у меня пошёл целый список note1, note2 ... и т.д. в итоге у меня набирается порядка 200 таких функций. как бы это сократить?

Serg_pnz 26.04.2012 20:37

присвоить им класс и переписать события по класу
$('.note').live('mouseover mouseout', function(event) { 
  if (event.type == 'mouseover') { 
    $(this).fadeTo(10,0.7); 
  } else { 
     $(this).fadeTo(10,1); 
  } 
});

titans 26.04.2012 21:10

Блин точно. А я думал так не прокатит. Спасибо.
А как узнать, какой элемент был нажат? У меня они просто по списку идут
Например раньше я писал так:
$("#note2").live("dblclick", function(){
	showdiv(2);	
	});
$("#note3").live("dblclick", function(){
	showdiv(3);	
	});

atlantis 26.04.2012 21:16

Если есть id, то $(this).attr('id');

titans 26.04.2012 21:29

Так получается всё равно нужно писать столько функций, сколько и элементов? Просто у меня функция showdiv принимает какой по счёту элемент . Перебором тут не получится, только полный список...

Serg_pnz 27.04.2012 10:42

Это?
http://jquery.page2page.ru/index.php...BE%D1%80%D0%B5
http://jquery.page2page.ru/index.php...80%D0%BE%D0%BC

А с другой стороны правильно Вам сказали - передавайте в функцию id и уже там, в функции обращайтесь к элементу.

Объясните простыми словами что мутите-то?


Часовой пояс GMT +3, время: 11:53.