Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    62

    javascript applicato a OnMouseOver

    Ciao,

    spero che mi diate una mano: devo eseguire un'operazione al volo su un evento OnMouseOver, e non sò bene come fare.

    L'operazione è :
    Onmouseover= "messages[3]=new Array('','descrizione'); richiamafunzone(3)";

    come posso fare una assegnazione di questo tipo senza includerla in una funzione?

    grazie!
    Isabella

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'argomento di un evento e` codice Javascript (a meno di ridefinizioni nella head).
    Dentro l'argomento puoi metterci quello che vuoi, tranne andare a capo riga, solo che se la cosa e` lunga conviene fare una funzione a parte.

    Il tuo codice e` quindi corretto (dal punto di vista sintattico), a parte che onmouseover va scritto con l'iniziale minuscola (fino ad oggi si puo` scrivere onMouseOver, tranne in XHTML), ma e` bene abituarsi a scriverlo tutto minuscolo.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    62

    Grazie,

    Grazie, ma allora non capisco perchè non funziona...

    Isabella

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma la matrice messages esiste?
    Cioe` c'e` da qualche parte prima, fuori dalle funzioni un'istruzione di questo tipo?
    var messages = new Array();

    Forse e` meglio se posti tutto lo script.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    62

    vedo...

    dunque, c'è questa parte di codice che è nella mia pagina principale:


    <SCRIPT language="javascript" type="text/javascript">

    var dom = (document.getElementById) ? true : false;
    var ns5 = ((navigator.userAgent.indexOf("Gecko")>-1) && dom) ? true: false;
    var ie5 = ((navigator.userAgent.indexOf("MSIE")>-1) && dom) ? true : false;
    var ns4 = (document.layers && !dom) ? true : false;
    var ie4 = (document.all && !dom) ? true : false;
    var nodyn = (!ns5 && !ns4 && !ie4 && !ie5) ? true : false;

    var origWidth, origHeight;
    if (ns4) {
    origWidth = window.innerWidth; origHeight = window.innerHeight; window.onresize = function() {if (window.innerWidth != origWidth || window.innerHeight != origHeight) history.go(0); }}
    if (nodyn) { event = "nope" }
    var tipFollowMouse= true;
    var tipWidth= 370; //larghezza area del tooltip
    var offX= 20; // distanza orizzontale dal mouse
    var offY= 12; //distanza verticale dal mouse
    var tipFontFamily= "Verdana, arial, helvetica, sans-serif";
    var tipFontSize= "8pt";
    var tipFontColor= "#000000";
    var tipBgColor= "#ffffff";
    var tipBorderColor= "#D6D8D9";
    var tipBorderWidth= 2;
    var tipBorderStyle= "solid";
    var tipPadding= 8;

    var messages = new Array();

    function initTip() {
    if (nodyn) return;
    tooltip = (ns4)? document.tipDiv.document: (ie4)? document.all['tipDiv']: (ie5||ns5)? document.getElementById('tipDiv'): null;
    alert("boo");
    tipcss = (ns4)? document.tipDiv: tooltip.style;
    if (ie4||ie5||ns5) {
    tipcss.width = tipWidth+"px";
    tipcss.fontFamily = tipFontFamily;
    tipcss.fontSize = tipFontSize;
    tipcss.color = tipFontColor;
    tipcss.backgroundColor = tipBgColor;
    tipcss.borderColor = tipBorderColor;
    tipcss.borderWidth = tipBorderWidth+"px";
    tipcss.padding = tipPadding+"px";
    tipcss.borderStyle = tipBorderStyle;
    }
    if (tooltip&&tipFollowMouse) {
    if (ns4) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = trackMouse;
    }
    }
    window.onload = initTip;
    var t1,t2;
    var tipOn = false;
    function doTooltip(evt,num) {
    if (!tooltip) return;
    if (t1) clearTimeout(t1); if (t2) clearTimeout(t2);
    tipOn = true;
    if (messages[num][2]) var curBgColor = messages[num][2];
    else curBgColor = tipBgColor;
    if (messages[num][3]) var curFontColor = messages[num][3];
    else curFontColor = tipFontColor;
    if (ns4) {
    var tip = '<table bgcolor="' + tipBorderColor + '" width="' + tipWidth + '" cellspacing="0" cellpadding="' + tipBorderWidth + '" border="0"><tr><td><table bgcolor="' + curBgColor +'" width="100%" cellspacing="0" cellpadding="' + tipPadding + '" border="0"><tr><td>'+ startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr + '</td></tr></table></td></tr></table>';
    tooltip.write(tip);
    tooltip.close();
    } else if (ie4||ie5||ns5) {
    var tip = startStr + messages[num][0] + midStr + '<span style="font-family:' + tipFontFamily + '; font-size:' + tipFontSize + '; color:' + curFontColor + ';">' + messages[num][1] + '</span>' + endStr;
    tipcss.backgroundColor = curBgColor;
    tooltip.innerHTML = tip;
    }
    if (!tipFollowMouse) positionTip(evt);
    else t1=setTimeout("tipcss.visibility='visible'",100);
    }
    var mouseX, mouseY;
    function trackMouse(evt) {
    mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
    mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
    if (tipOn) positionTip(evt);
    }
    if (document.images) {
    var theImgs = new Array();
    for (var i=0; i<messages.length; i++) {
    theImgs[i] = new Image();
    theImgs[i].src = messages[i][0];
    }
    }
    var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%">';
    var midStr = '</td></tr><tr><td valign="top">';
    var endStr = '</td></tr></table>';
    var tooltip, tipcss;
    function positionTip(evt) {
    if (!tipFollowMouse) {
    mouseX = (ns4||ns5)? evt.pageX: window.event.clientX + document.body.scrollLeft;
    mouseY = (ns4||ns5)? evt.pageY: window.event.clientY + document.body.scrollTop;
    }
    var tpWd = (ns4)? tooltip.width: (ie4||ie5)? tooltip.clientWidth: tooltip.offsetWidth;
    var tpHt = (ns4)? tooltip.height: (ie4||ie5)? tooltip.clientHeight: tooltip.offsetHeight;
    var winWd = (ns4||ns5)? window.innerWidth-20+window.pageXOffset: document.body.clientWidth+document.body.scrollLeft ;
    var winHt = (ns4||ns5)? window.innerHeight-20+window.pageYOffset: document.body.clientHeight+document.body.scrollTop ;
    if ((mouseX+offX+tpWd)>winWd)
    tipcss.left = (ns4)? mouseX-(tpWd+offX): mouseX-(tpWd+offX)+"px";
    else tipcss.left = (ns4)? mouseX+offX: mouseX+offX+"px";
    if ((mouseY+offY+tpHt)>winHt)
    tipcss.top = (ns4)? winHt-(tpHt+offY): winHt-(tpHt+offY)+"px";
    else tipcss.top = (ns4)? mouseY+offY: mouseY+offY+"px";
    if (!tipFollowMouse) t1=setTimeout("tipcss.visibility='visible'",100);
    }
    function hideTip() {
    if (!tooltip) return;
    t2=setTimeout("tipcss.visibility='hidden'",100);
    tipOn = false;
    }
    </SCRIPT>


    mentre il caricamento del vettore viene generato da una mia pagina PHP che mi restituisce un link con l'evento:


    onMouseOver= "messages[0]=new Array('','descrizione1'); doTooltip(event, 0)" onmouseout=hideTip();
    onMouseOver= "messages[2]=new Array('','descrizione2'); doTooltip(event, 2)" onmouseout=hideTip()
    onMouseOver= "messages[3]=new Array('','descrizione3'); doTooltip(event, 3)" onmouseout=hideTip()
    onMouseOver= "messages[4]=new Array('','descrizione4'); doTooltip(event, 4)" onmouseout=hideTip()


    Che sia un problema dovuto alla gestione dei div?
    Lo chiedo perchè la mia pagina in php è nascosta e va a caricare i dati all'interno di un div specifico della mia pagina principale.

    Grazie per l'aiuto.

    Isabella

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Il tutto sembra fatto bene, ma ci sono alcune variabili che vengono definite due volte: una all'interno delle funzioni ed una all'esterno e in qualche caso dopo averle usate.

    Ti consiglio di spostare tutte le definizioni di variabili (specificate sotto) all'inizio dello script, prima delle varie funzioni.

    Immagino che lo script sia caricato nella pagina dove viene usato (magari in un file esterno), altrimenti ti darebbe altri errori.

    Tra l'altro lo script si e` fatto in modo diverso a seconda del browser: in teoria dovrebbe comportarsi allo stesso modo, ma potrebbero esserci dei problemi. C0n che browser lo stai testando (tipo e versione)?

    Ciao
    Michele


    var t1,t2;
    var tipOn = false;

    var mouseX, mouseY;

    var startStr = '<table width="' + tipWidth + '"><tr><td align="center" width="100%">';
    var midStr = '</td></tr><tr><td valign="top">';
    var endStr = '</td></tr></table>';
    var tooltip, tipcss;
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    62

    ...

    Il mio browser è explore 6.0

    provo a fare le variazioni che mi hai detto!

    Grazie mille per la Tua disponibilità.

    Ciao,

    Isabella.

    Isabella

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    62

    hmm..

    niente da fare....

    proverò ancora, ma incomincio a pensare che siano i div...

    Isabella

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.