Ciao a tutti,

sto sbattendo la testa da un paio d'ore (sono un neofita) su questo script che ho scritto; dovrebbe visualizzarmi un div specifico al click di un immagine


**Galleria immagini
Codice PHP:
<ul class="blocks">
        [*][
url="#"][img]gallery/1.jpg[/img][/url]
        [*][
url="#"][img]gallery/2.jpg[/img][/url]
        [*][
url="#"][img]gallery/3.jpg[/img][/url]
        [*][
url="#"][img]gallery/4.jpg[/img][/url][/list] 
**Contenuto da aprire in base a "title" cliccato
Codice PHP:
<div id="works" >
<
div class="hide" title="a">         
            
</
div>
<
div class="hide" title="b">         
        
</
div
</
div

** Script (non fucilatemi!)
Codice PHP:
this.Preview = function() {

    $(
"ul.blocks li a ").click(
    function() {
                
        var 
divTitle = $("img"this).attr("title");
        
alert(divTitle);
                        
        
/*classe "on" elemento cliccato */
        
var has_on=$("#works div[title="+divTitle+"]").hasClass("on");
        
/*classe "on" di tutti gli elementi meno l'elemento cliccato*/
        
var has_on_total=$("(#works div):not(#works div[title="+divTitle+"])").hasClass("on");
        
        
alert(has_on);
        
alert(has_on_total);
        
        
/*se elemento diverso da elemento cliccato ha classe "on"*, tolgo classe "on" */
        /*e nascondo questo/i elemento/i */
        
if (has_on_total) {
            
alert("sono nell'if - HAS_ON_TOTAL=true");
            $(
"(#works div):not(#works div[title="+divTitle+"])").removeClass("on");
            $(
"#works div:not(#works div[title="+divTitle+"])").hide("fast");
        }
                        
        
/*se l'immagine selezionata non ha la classe "on"  --> visualizzo contenuto   */  
        
if (!has_on) {
            
alert("sono nel II if- HAS_ON=false");
            $(
"#works div[title="+divTitle+"]").addClass("on");
            $(
"#works div[title="+divTitle+"]").show("slow");
        }
        else {
            $(
"#works div[title="+divTitle+"]").removeClass("on");
            $(
"#works div[title="+divTitle+"]").hide("slow");
        }
    });        
};

$(
document).ready(function() {
    
Preview();
}); 
Il comportamento risulta errato se tento di riaprire un contenuto (div) già aperto in precedenza.
Esempio:
1)apro contenuto con title="a" (OK)
2)apro contenuto con title="b" (OK e il contenuto "a" viene nascosto correttamente)
3)apro contenuto con title="a" (viene nascosto il contenuto "b" ma non viene aperto "a" pur eseguendo lo script correttamente)

Da firebug il funzionamento sembra perfetto, non riesco a capire perchè al punto 3) non viene visualizzato il contenuto.

Avete qualche idea?

Grazie !!

Ciao