- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- problema scriptaculous con interazione altra funzione
-
problema scriptaculous con interazione altra funzione
salve a tutti,
ho un problema con una funzione javascript e l'interazione con scriptaculous.
questa è la funzione:function crea(elemento,sito,area,contesto,illlustrazionec,notec,classe,tipo,materiale,dimensioni,numeroscavo,luogo,numeromuseo,illustraazionep,biblio,noteg){ var nome_elemento ="cat"+elemento; var collapse2 = new animatedcollapse(""+nome_elemento+"", 500, true); if(!$('obj'+elemento)){ newitem=Builder.node( 'li', {className:'item',id:'obj'+elemento}, [Builder.node( 'div', {className:'handle'},'obj'+elemento)] ); newchiudi=Builder.node( 'div', {className:'chiudi'}); newlink=Builder.node( 'a', {href:'javascript:rimuovi('+elemento+')', className:'chiudilink'},'x'); newespandi=Builder.node( 'a', {href:'javascript:collapse2.slideit()', className:'espandi_finestra'},'espandi/ritira'); newitem.appendChild(newchiudi); newchiudi.appendChild(newlink); $('firstlist').appendChild(newitem); newitem.appendChild(newespandi); $('obj'+elemento).innerHTML=$('obj'+elemento).innerHTML+'sito'+sito+' area<br>'+area+'contesto'+contesto+'<a href="javascript:collapse2.slideit()">espandi/ritira</a> '; $('obj'+elemento).innerHTML+='<div id=\"'+nome_elemento+'\"> illlustrazionec<br>'+illlustrazionec+'notec '+notec+'classe<br>'+classe+'tipo '+tipo+'materiale<br>'+materiale+'dimensioni '+dimensioni+'numeroscavo<br>'+numeroscavo+'luogo '+luogo+'numeromuseo<br>'+numeromuseo+'illustraazionep '+illustraazionep+'biblio<br>'+biblio+'noteg<br>'+noteg+'</div>'; document.getElementById('id_generico').innerHTML+=' <script type="text/javascript">var collapse2=new animatedcollapse("'+nome_elemento+'", 500, true); </script>'; rendisortable(); } }
questa mi permette di creare un oggetto con scriptacolous. Il mio problema sta nel fatto che l'oggetto che viene creato, graficamente, è troppo grosso, infatti se mi trovo ad avere più oggetti, finisco di riempire troppo lo schermo.
Così ho pensato di aggiungerci un effetto che mi nascondesse i div e che al click di un link me lo mostrasse.
Ho trovato sulla rete questo effetto:
http://www.juliuswebdesign.com/div_anime/animated_div.htmed ho detto facile, prendo la classe, la creo
var collapse2 = new animatedcollapse(""+nome_elemento+"", 500, true); ```creo anche il div
$('obj'+elemento).innerHTML+='<div id="'+nome_elemento+'"> illlustrazionec<br>'+illlustrazionec+'notec '+notec+'classe<br>'+classe+'tipo '+tipo+'materiale<br>'+materiale+'dimensioni '+dimensioni+'numeroscavo<br>'+numeroscavo+'luogo '+luogo+'numeromuseo<br>'+numeromuseo+'illustraazionep '+illustraazionep+'biblio<br>'+biblio+'noteg<br>'+noteg+'</div>';
la classe è questa (ovviamente non sto a postare tutto il codice
var uniquepageid=window.location.href.replace("http://"+window.location.hostname, "").replace(/^//, ""); //get current page path and name, used to uniquely identify this page for persistence feature
function animatedcollapse(divId, animatetime, persistexpand, initstate){
this.divId=divId;
this.divObj=document.getElementById(divId);
this.divObj.style.overflow="hidden";
this.timelength=animatetime;
this.initstate=(typeof initstate!="undefined" && initstate=="block")? "block" : "contract";
this.isExpanded=animatedcollapse.getCookie(uniquepageid+"-"+divId); //"yes" or "no", based on cookie value
this.contentheight=parseInt(this.divObj.style.height);
var thisobj=this;
if (isNaN(this.contentheight)){ //if no CSS "height" attribute explicitly defined, get DIV's height on window.load
animatedcollapse.dotask(window, function(){thisobj._getheight(persistexpand)}, "load");
if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes"); //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
this.divObj.style.visibility="hidden"; //hide content (versus collapse) until we can get its height
}
else if (!persistexpand && this.initstate=="contract" || persistexpand && this.isExpanded!="yes") //Hide DIV (unless div should be expanded by default, OR persistence is enabled and this DIV should be expanded)
this.divObj.style.height=0; //just collapse content if CSS "height" attribute available
if (persistexpand)
animatedcollapse.dotask(window, function(){animatedcollapse.setCookie(uniquepageid+"-"+thisobj.divId, thisobj.isExpanded)}, "unload");
}animatedcollapse.prototype._getheight=function(persistexpand){
this.contentheight=this.divObj.offsetHeight
.....
...
..e il gioco è fatto, ma ovviamente, per la legge di murphy, non ha funzionato. firebug mi da questo errore: this.divObj has no properties animatedcollapse("cat22", 500, true, undefined)scriptacolous.js (line 15) crea("22", "mari", "AREA", "LIVELLO", "CONTESTO", "", "NOTE CONTESTO", "CLASSE", "TIPO", "MATERIALE", "DIMENSIONI", "NUMERO SCAVO", "LUOGO CONSERVAZIONE", "NUMERO MUSEO", "", "BIBLIOGRAFIA")scriptacolous.js (line 128) onclick(click clientX=0, clientY=0)form (line 1) ![image](chrome://firebug/content/blank.gif) this.divObj.style.overflow="hidden"; sapreste aiutarmi? grazie in anticipo! Nep
-
nessun aiuto??:bho: