Newsgroup: it.comp.lang.javascript
Titolo: closest in jquery

Questa funzione è estrapolata dal codice di jquery lightbox plugin 
(perdonate, non la so formattare meglio):
http://leandrovieira.com/projects/jquery/lightbox/
 
 
function _start(objClicked,jQueryMatchedObj) {
	// Hime some elements to avoid conflict with overlay in IE. These 
elements appear above the overlay.
	$('embed, object, select').css({ 'visibility' : 'hidden' });
	// Call the function to create the markup structure; style some 
elements; assign events in some elements.
	_set_interface();
	// Unset total images in imageArray
	settings.imageArray.length = 0;
	// Unset image active information
	settings.activeImage = 0;
	// We have an image set? Or just an image? Let´s see it.
	if ( jQueryMatchedObj.length == 1 ) {
		settings.imageArray.push(new 
Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));
	} else {
		// Add an Array (as many as we have), with href and title atributes, 
inside the Array that storage the images references		
		for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
			settings.imageArray.push(new 
Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title'));
		}
	}
	while ( settings.imageArray[settings.activeImage][0] != 
objClicked.getAttribute('href') ) {
		settings.activeImage++;
	}
	// Call the function that prepares image exibition
	_set_image_to_view();
}
 
Se sostituisco la prima riga dentro il for con:
settings.imageArray.push(new 
Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].closest('div').getAttribute('class'));
(cioè richiamo il div che contiene l'elemento anziché l'elemento stesso) 
la funzione genera un errore.
Ammesso che l'oggetto abbia certamente un parente div, è apparente il 
motivo dell'errore?
(cioè, apparente nel senso che si capisce a vista - anche se io non ci 
riesco - e non richiede di leggere tutto il resto del codice)
 

 motivo dell'errore?
 
erhm, aiuterebbe parecchio capire *quale* errore è generato.
 
per il resto... boh, ma perché ti metti a modificare il sorgente di una 
libreria?
 
-- 
By ZeD

 libreria?
 
Perché tutti i plugin di lighbox che conosco leggono solo le proprietà 
dell'elemento <a> e dei suoi discendenti mentre io ho bisogno di leggere 
quella di un elemento in un altro ramo del dom perché devo gestire una 
galleria di immagini che struttura le infomazioni così: <div> e quindi 
<a> per l'immagine e <span> per la descrizione in parallelo.
 


Sbagliato
Console- sottomenu voce "Mantieni"
 
 
Se posso permettermi un consiglio: se vuoi fare cose abbastanza avanzate 
come metter mano ad una libreria non banale impara ad usare almeno i 
*tuoi* strumenti. Iniziare a leggere quello che c'è a schermo e un po' 
di istruzioni aiuta molto.
 
M
 
-- 
I fatti mi cosano

 motivo dell'errore?
 
Ok, risolto. Occorreva sostituire jQueryMatchedObj[i] con 
jQuery(jQueryMatchedObj[i]), anche se non ho compreso il perché.

 jQuery(jQueryMatchedObj[i]), anche se non ho compreso il perché.
 
Ci do a caso,
 
jQueryMatchedObj[i] e' un oggetto JS
 
jQuery(jQueryMatchedObj[i]) e' un oggetto Jquery
 
J.