HighDots Forums  

applicare uno script solo ad un livello

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss applicare uno script solo ad un livello in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Fello
 
Posts: n/a

Default applicare uno script solo ad un livello - 11-09-2006 , 08:33 AM






Ciao a tutti, ho trovato questo bellissimo script:

http://html.it/articoli/esempi/artic...eTooltips.html

Io vorrei applicare questo script solo ad un livello che ha id="menu",
non a tutto il body della pagina; è possibile?

Come e dove devo modificare lo script?
il codice è il seguente

-------------------------------------------------------------------------------------------------------------
function enableTooltips(id){
var links,i,h;
if(!document.getElementById || !document.getElementsByTagName) return;
AddCss();
h=document.createElement("span");
h.id="btc";
h.setAttribute("id","btc");
h.style.position="absolute";
document.getElementsByTagName("body")[0].appendChild(h);
if(id==null) links=document.getElementsByTagName("a");
else links=document.getElementById(id).getElementsByTag Name("a");
for(i=0;i<links.length;i++){
Prepare(links[i]);
}
}

function Prepare(el){
var tooltip,t,b,s,l;
t=el.getAttribute("title");
if(t==null || t.length==0) t="link:";
el.removeAttribute("title");
tooltip=CreateEl("span","tooltip");
s=CreateEl("span","top");
s.appendChild(document.createTextNode(t));
tooltip.appendChild(s);
b=CreateEl("b","bottom");
l=el.getAttribute("href");
if(l.length>30) l=l.substr(0,27)+"...";
b.appendChild(document.createTextNode(l));
tooltip.appendChild(b);
setOpacity(tooltip);
el.tooltip=tooltip;
el.onmouseover=showTooltip;
el.onmouseout=hideTooltip;
el.onmousemove=Locate;
}

function showTooltip(e){
document.getElementById("btc").appendChild(this.to oltip);
Locate(e);
}

function hideTooltip(e){
var d=document.getElementById("btc");
if(d.childNodes.length>0) d.removeChild(d.firstChild);
}

function setOpacity(el){
el.style.filter="alpha(opacity:95)";
el.style.KHTMLOpacity="0.95";
el.style.MozOpacity="0.95";
el.style.opacity="0.95";
}

function CreateEl(t,c){
var x=document.createElement(t);
x.className=c;
x.style.display="block";
return(x);
}

function AddCss(){
var l=CreateEl("link");
l.setAttribute("type","text/css");
l.setAttribute("rel","stylesheet");
l.setAttribute("href","bt.css");
l.setAttribute("media","screen");
document.getElementsByTagName("head")[0].appendChild(l);
}

function Locate(e){
var posx=0,posy=0;
if(e==null) e=window.event;
if(e.pageX || e.pageY){
posx=e.pageX; posy=e.pageY;
}
else if(e.clientX || e.clientY){
if(document.documentElement.scrollTop){
posx=e.clientX+document.documentElement.scrollLeft ;
posy=e.clientY+document.documentElement.scrollTop;
}
else{
posx=e.clientX+document.body.scrollLeft;
posy=e.clientY+document.body.scrollTop;
}
}
document.getElementById("btc").style.top=(posy+10) +"px";
document.getElementById("btc").style.left=(posx-20)+"px";
}
--------------------------------------------------------------------------------------------------------------------


Reply With Quote
  #2  
Old   
Nando
 
Posts: n/a

Default Re: applicare uno script solo ad un livello - 11-09-2006 , 08:46 AM






Fello <francesco (AT) websea (DOT) it> ha scritto:

Quote:
Io vorrei applicare questo script solo ad un livello che ha id="menu",
non a tutto il body della pagina; è possibile?
Ho dato una lettura velocissima. Se ho capito bene cosa vuoi, e come è
strutturato lo script, dovrebbe essere sufficiente invocare la funzione
enableTooltips specificando l'id del "livello" come parametro, ovverosia,
nel tuo caso, enableTooltips("menu"). Ovviamente da farsi all'onload della
finestra:

window.onload=function() {
// ... altre eventuali azioni ...
enableTooltips("menu");
}

--
Nando [?]
Apostolo della Prova


Reply With Quote
  #3  
Old   
Fello
 
Posts: n/a

Default Re: applicare uno script solo ad un livello - 11-09-2006 , 09:05 AM



Funziona alla perfezione..... :-)
Nando ti ringrazio tanto, pensa che ci ho ragionato diverso tempo
mettendo mano al file .js
e la soluzione era così semplice!!

Grazie!!!


Nando ha scritto:

Quote:
Fello <francesco (AT) websea (DOT) it> ha scritto:

Io vorrei applicare questo script solo ad un livello che ha id="menu",
non a tutto il body della pagina; è possibile?

Ho dato una lettura velocissima. Se ho capito bene cosa vuoi, e come è
strutturato lo script, dovrebbe essere sufficiente invocare la funzione
enableTooltips specificando l'id del "livello" come parametro, ovverosia,
nel tuo caso, enableTooltips("menu"). Ovviamente da farsi all'onload della
finestra:

window.onload=function() {
// ... altre eventuali azioni ...
enableTooltips("menu");
}

--
Nando [?]
Apostolo della Prova


Reply With Quote
  #4  
Old   
Nando
 
Posts: n/a

Default Re: applicare uno script solo ad un livello - 11-09-2006 , 09:36 AM



Fello <francesco (AT) websea (DOT) it> ha scritto:

Quote:
Funziona alla perfezione..... :-)
Nando ti ringrazio tanto, pensa che ci ho ragionato diverso tempo
mettendo mano al file .js
e la soluzione era così semplice!!
Giusto per darti qualche informazione in più, magari potrà tornarti utile
in futuro, ti dico che "il segreto" si trova in questa istruzione di
enableTooltips:

// Se non c'è il parametro, applica i tooltips
// a tutto il documento:
if(id==null) links=document.getElementsByTagName("a");
// altrimenti, applica i tooltips solo all'elemento
// di cui è specificato l'id nella chiamata a enableTooltips:
else links=document.getElementById(id).getElementsByTag Name("a");

Quote:
Grazie!!!
Di niente.

Senza voler sembrare saccente, ti invito a leggere il seguente articolo,
che riguarda alcune "buone maniere" che andrebbero osservate quando si
posta nei ng:

http://wiki.news.nic.it/QuotarBene

Ciao

--
Nando [?]
Apostolo della Prova


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.