11 Stimmen

javascript: Wie prüft man, ob ein Element anklickbar ist oder nicht?

Mein naiver Ansatz ist der folgende:

function isClickable(id){     
     elem = document.getElementById(id);
     if (elem.nodeName.toLowerCase() == 'a' || typeof(elem.click) != 'undefined'){
        return true;     
     }else{
        return false;     
     }
}    

Gibt es etwas, das ich besser machen kann?

1voto

user4723924 Punkte 21

Für die meisten Elemente...

if(e.getAttribute('onclick')!=null){

 // clickable

}

Bei Ankern...

if(e.getAttribute('href')!=null){

 // clickable

}

Dann haben Sie Formular-Buttons, die ein wenig mehr Code erfordern, und schließlich haben Sie Klick-Ereignis Blasenbildung zu behandeln, so dass eine perfekte Lösung für ALLE Elemente wäre ein Alptraum!

Wenn Sie jedoch nur etwas EINFACHES für Container und Anker wollen, dann können wir die obige Logik mit einem...

if((e.getAttribute('onclick')!=null)||(e.getAttribute('href')!=null)){

 // clickable

}

Für den umgekehrten Fall...

if((e.getAttribute('onclick')===null)&&(e.getAttribute('href')===null)){

 // not clickable

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X