Allora, provo ancora una volta, poi, se non riesco a spiegarmi, posto il codice originale. Sono reticente nel farlo perchè essendo appunto un po' più complesso dell'esempio temo che faticherei ancora di più a spiegare cosa vorrei sapere e otterrei soluzioni alternative al problema. Cmq. Procedo.
Innanzitutto, non concentriamoci sull'obiettivo finale, che è solo un esempio, ma sul modo di raggiungerlo. Io vorrei raggiungerlo proprio come lo scrivo. E cioè:
- STEP 1: quando il documento è pronto lancio la funzione...:
codice:
$(document).ready(function(){
- STEP 2: Quando uno qualsiasi dei box con class "box" viene cliccato...:
codice:
$('box').click(function(){
- STEP 3: ...allora lancio una funzione che sia valida solo all'interno del content relativo al box cliccato, e che non valga per gli altri div class "content":
codice:
$(this).parent()???(function(){
E' proprio qui il punto cruciale. Io voglio selezionare un preciso elemento, e lo faccio tranquillamente attraversando il DOM. Poi però, voglio lanciare una funzione. Questa funzione deve partire subilto, senza essere collegata ad un evento. Ma non so come farlo (da qui i punti interrogativi, dove ipotizzo ci sia qualcosa. Io ho provato a metterci ready, ma non funziona)
- STEP 4: all'interno dell'ultima funzione, che nei miei piani agisce solo sul div "content" selezionato, eseguo tutte le cose che voglio, su ogni elemento contenuto. Poi chiudo tutto:
codice:
$('.box2', this).css('background-color', 'white'),
$('.box1', this).css('width', '130px'),
$('.content', this).css('border', '1px solid white'),
$('.box2 p', this).css('color', 'lime')
})
})
});
Spero di essere stato chiaro. Una volta che ho selezionato il mio "ambiente" attraversando il DOM, come faccio a lanciare una funzione che riguardi solo quel determinato ambiente, ma senza associare la funzione in questione ad un evento?