2013-03-29 8 views
13

Lets sagen, ich habe:Ist es möglich, einen Klick von einem: after oder: before Pseudoelement mit jQuery zu erkennen?

<div></div> 

mit:

div { 
    width: 500px; 
    height: 500px; 
    position: relative; 
} 
div:after { 
    content: ''; 
    display: block; 
    width: 20px; 
    height: 20px; 
    position: absolute; 
    top: 0; 
    right: 0; 
} 

Kann ich etwas tun, wie $('div:after').click(function(){...});? Und habe es nicht Feuer, wenn ich auf div aber nicht div:after klicke.

+2

Warum spalten Sie nicht einfach in ein anderes Element und die Kopfschmerzen sparen? – mattytommo

+2

Nein. Deshalb sind sie Pseudo-Elemente. –

+0

@mattytommo Ich möchte nur wissen, ob es möglich ist. – dezman

Antwort

7

Vielleicht. Je nachdem, wie Sie Ihren Pseudoinhalt strukturieren, müssen Sie sich darauf verlassen, dass Sie die Mausposition für Klicks auf das tatsächliche div berechnen. Die Event-Handler würden alle auf das div und nicht auf das Pseudo-Element gehen, weil es nicht im DOM existiert.

Weitere Informationen finden Sie unter Manipulating CSS :before and :after pseudo-elements using jQuery . Vor allem BoltClocks Antwort.

Siehe auch Felix Kommentar für eine andere mögliche Lösung ohne Positions Maus: Only detect click event on pseudo-element

+1

Ich kann keinen Kommentar von Felix finden. –

Verwandte Themen