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