Visualizzazione risultati 1 fino 4 di 4

Discussione: [JavaScript] Far agire Tooltip solo su elementi con determinate classi

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito [JavaScript] Far agire Tooltip solo su elementi con determinate classi

    Buongiorno,
    oggi necessitavo dei tooltip e così cercando in rete ho trovato il seguente codice (fonte HTML.it):

    Codice PHP:
    window.onload=enableTooltips;

    function
    enableTooltips(){
    var
    links=document.getElementsByTagName("a");
    for(
    i=0;i<links.length;i++){
    t=links[i].getAttribute("title");
    if(
    t!=""){
    links[i].removeAttribute("title");
    links[i].style.position="relative";
    tooltip=document.createElement("em");
    tooltip.className="tooltip";
    tooltip.style.display="none";
    tooltip.appendChild(document.createTextNode(t));
    links[i].appendChild(tooltip);
    links[i].onmouseover=showTooltip;
    links[i].onmouseout=hideTooltip;
    }
    }
    }

    function
    showTooltip(event){
    this.style.zIndex="25";
    this.getElementsByTagName("em")[0].style.display="block";
    }

    function
    hideTooltip(event){
    this.style.zIndex="24";
    this.getElementsByTagName("em")[0].style.display="none";
    }
    Il codice rispetto ad altri funziona alla perfezione e mi piace perchè utilizza poche righe di codice...

    Il problema è che questo tooltip agisce su ogni oggetto avente il tag title...ora vi chiedo...come è possibile fare in modo che il tooltip agisca solo se il link ha anche una determinata classe?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Semplice... estrai anche la classe dagli attributi:
    Codice:
    function enableTooltips(){
    var links=document.getElementsByTagName("a");
    for(i=0;i<links.length;i++){
        t=links[i].getAttribute("title");
        c=links[i].getAttribute("class");
        if(t!="" && c=="mia_classe"){
            links[i].removeAttribute("title");
            links[i].style.position="relative";
            tooltip=document.createElement("em");
            tooltip.className="tooltip";
            tooltip.style.display="none";
            tooltip.appendChild(document.createTextNode(t));
            links[i].appendChild(tooltip);
            links[i].onmouseover=showTooltip;
            links[i].onmouseout=hideTooltip;
            }
        }
    }
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ci avevo pensato, ma qualora ci siano due o più classi per lo stesso attributo?
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Invece di fare il confronto diretto, usi la ricerca per regexp. Il codice che ti serve dovrebbe essere questo:
    Codice:
    c.match (/\bmia_classe\b/)
    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •