jQuery - film 14 - pobranie div- jak działa ten zapis?

Dział poświęcony JavaScriptowi - tworzeniu dynamicznym stron WWW.
lukasz21
Początkujący
Początkujący
Posty: 11
Dołączył(a): wtorek, 21 czerwca 2016, 23:37

jQuery - film 14 - pobranie div- jak działa ten zapis?

Post przez lukasz21 »

W filmie 14 jest cześć kodu, której nie rozumiem. Pod koniec filmu jest pokazane jak z div o id='otoczka' pobierana jest tresc i wstawiana w okienko, które po hover pojawia sie obok 'tr' w table. I mam pytanie o ta czesc. W Javascript trzeba pobrac tresc np. div do zmiennej i potem ta zmienna można przekazac dalej. Tutaj nie widze sposobu jak tresc z div jest zapisana i przekazana dalej do funkcji.

Chodzi mi dokładnie o ta cześć kodu:

Code: Zaznacz cały

	function(evt)
			{
				$(this).addClass("podswietlenie");
				
				poczatek = evt.timeStamp;
					hint.css(
					{
						"left": evt.pageX+20,
						"top": evt.pageY
					}
				).html($("."+$(this).attr("id")).html()).show(200);  // jak to działa dokładnie?  Jak to pobiera tresc div id='otoczka'? To zaznacza 'tr' na podstawie : tr id='nr[i]' ? 
				
			}
Z góry dziękuje za odpowiedź.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: jQuery - film 14 - pobranie div- jak działa ten zapis?

Post przez Morfidon »

$("...") - pozwala Ci wyszukać jakikolwiek element i od razu przy pomocy operatora '.' działać na nim. Czy już rozumiesz ten kod? :) Jak coś to pisz dalej.

Pozdrawiam :)
lukasz21
Początkujący
Początkujący
Posty: 11
Dołączył(a): wtorek, 21 czerwca 2016, 23:37

Re: jQuery - film 14 - pobranie div- jak działa ten zapis?

Post przez lukasz21 »

Źle zadałem pytanie, juz poprawiam się.

Nie rozumiem jaka akcje ta cześć wykonuje:

Code: Zaznacz cały

.html($("."+$(this).attr("id")).html())
Na poczatku JQ zaznacza 'tr' w table i dodaje efekt 'hover' dla każdego 'tr'. Funckja w 'hover' robi 2 rzeczy. Po pierwsze dodaje class 'podswietlenie'. Potem dla 'hint', czyli div'a ktory bedzie tworzony po najecheniu myszka na 'tr' , wykonuje się kod : ' .html($("."+$(this).attr("id")).html()) '.
Jeśli dobrze rozumiem ten kod to : skoro jest tam 'this' to zaznacza on 'tr', ponieważ 'tr' jest zaznaczony w selektorze. Potem dla 'tr' pobiera jego 'id'. W takim razie do 'hint' [tworzonego div'a] powinno dodać treść 'tr'.
Dlatego dla 'tr' o id 'nr1' powinno dodać w 'hint' : ' Video Kurs C++ '.
Ale zamiast tego dodaje treść div'ów, które sa w '<div id="otoczka">. Na przykład 'tr' o id 'nr1' dostaje : 'To jest jakiś ciekawy tekst.' . Dlaczego?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: jQuery - film 14 - pobranie div- jak działa ten zapis?

Post przez Morfidon »

Wcześniej ten kod:

Code: Zaznacz cały

		$("#otoczka div").each(
			function(i)
			{
				$(this).attr("class", "nr" + (i+1))
			}
		);		
Nadaje dla każdego diva w konterzene o id 'otoczka' klasę nr1,nr2,nr3 etc.

A to robi to samo:

Code: Zaznacz cały

		$("#listaKursow tr").each(
			function(i)
			{
				$(this).attr("id", "nr" + i)
			}
		);
dla wszystkich table rows (wierszy)

Więc kod, który Ty przytaczasz pobiera z klasy wartość dla odpowiednika.
lukasz21
Początkujący
Początkujący
Posty: 11
Dołączył(a): wtorek, 21 czerwca 2016, 23:37

Re: jQuery - film 14 - pobranie div- jak działa ten zapis?

Post przez lukasz21 »

Już zrozumiałem, dziękuje za odpowiedź.
Post Reply