• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Optymalizacja kodu JavaScript

Object Storage Arubacloud
0 głosów
338 wizyt
pytanie zadane 18 kwietnia 2018 w JavaScript przez SzukającyPrzygód Bywalec (2,310 p.)
zamknięte 18 kwietnia 2018 przez SzukającyPrzygód

Witam

Oto mam taki kod


$("#rozsuwany_div").click(function() {
});

i drugi kod


$("#rozsuwany_div_drugi").click(function() {
});

i jak mógłbym to zoptymalizować aby w jednej funkcji określić że po kliknięciu diva

#rozsuwany_div_drugi

lub

#rozsuwany_div

ma wywołać się dana funkcja , nie wiem właśnie jak się za to zabrać a bardzo mi na tym zależy

komentarz zamknięcia: uzyskanie odpowiedzi

3 odpowiedzi

+1 głos
odpowiedź 18 kwietnia 2018 przez k.wichura Pasjonat (19,870 p.)
wybrane 18 kwietnia 2018 przez SzukającyPrzygód
 
Najlepsza
<div class="divDoRozsuniecia" id="peirwszy">1</div>
<div class="divDoRozsuniecia" id="drugi">2</div>
const divs = document.getElementsByClassName('divDoRozsuniecia');

for(let i=0; i<divs.length; i++) {
  divs[i].addEventListener('click', function() {
    console.log(this.innerText);
  })
}

 

1
komentarz 18 kwietnia 2018 przez Comandeer Guru (600,810 p.)
Można jeszcze lepiej, robiąc event delegation. Wówczas odpada nam pętla i mamy tylko jeden handler.
0 głosów
odpowiedź 18 kwietnia 2018 przez BT101 Stary wyjadacz (12,540 p.)
edycja 18 kwietnia 2018 przez BT101

Może po prostu napisz jedną funkcje i wywołaj ją w obu tych eventListnerach

<button id="first">Pierwszy button</button>
<button id="second">Drugi button</button>
var someFunction = function() {
	alert('button was clicked');
}
$('#first').click(function(){
	someFunction();
})
$('#second').click(function(){
	someFunction();
})
komentarz 18 kwietnia 2018 przez SzukającyPrzygód Bywalec (2,310 p.)

a jak to będzie wyglądało w kodzie laugh

komentarz 18 kwietnia 2018 przez BT101 Stary wyjadacz (12,540 p.)
Jestem na obiedzie, będę za 30min przy kompie to ci pokaże
0 głosów
odpowiedź 18 kwietnia 2018 przez pablop76 VIP (123,120 p.)

W jquery uchwyt $('selektor') jest bardzo elastyczny. Pobiera kolekcje elementów i wykonuje na nich automatycznie pętle. Tzn ,że dodając zdarzenie do kolekcji można je wykonać na aktualnie wywołanym elemencie.

PRZYKŁAD

<div class="div">1</div>
<div class="div">2</div>
<div class="div">3</div>
<div class="div">4</div>
body{
  background-color: #000;
}
.div{
  width: 50px;
  height: 50px;
  text-align: center;
  line-height: 50px;
  background-color: green;
  color: #fff;
  margin: 2px;
  cursor: pointer;
}
$('.div').click(function(){
  $(this).animate({
    width: '100px',
  });
});

Dodaj jquery przed odpaleniem.

Podobne pytania

0 głosów
1 odpowiedź 136 wizyt
0 głosów
0 odpowiedzi 212 wizyt
pytanie zadane 1 sierpnia 2016 w JavaScript przez MichałGNU Gaduła (4,330 p.)
0 głosów
1 odpowiedź 106 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...