2010-08-18 10 views
18

Ich möchte ein Hover-Ereignis für ein Element mit jQuery auslösen, aber ich habe eine halbtransparente PNG über das Element mit Z-Index positioniert. Gibt es eine Möglichkeit zu sagen, dass jQuery das PNG ignoriert und das Hover-Ereignis für das Element darunter auslöst?jQuery Hover-Problem aufgrund von Z-Index

Antwort

20

Wenn Sie einen modernen Browser verwenden, der CSS3 unterstützt, versuchen Sie diese Zeile in die CSS-Regel für die transparente png und fügte hinzu: pointer-events: none;
Es sagt dem Browser alle Mausereignisse auf dieses Element zu ignorieren.

Zum Beispiel:

img 
{ 
    pointer-events: none; 
} 

https://developer.mozilla.org/en/css/pointer-events

Alternativ, wenn Ihr gezielter Browser css3 nicht unterstützt, können Sie das Mausereignis erfassen und dann einen neuen auf dem darunter liegende Elemente Feuer.

zum Beispiel, wenn Sie Ihr Bild-ID ist #img und die zugrunde liegende Element-ID ist #elem Sie können dies tun:

$("#elem").hover(function(e){ 
    $("#img").mouseenter(e); 
}); 

Sie verwirren mit diesem ein wenig, je nachdem, wie Ihr DOMs eingerichtet haben könnte , hier ist die Dokumentation http://api.jquery.com/mouseenter/

+0

danke! das hat funktioniert, ich denke, für nicht-moderne Browser wird es einfach nicht funktionieren, oder? – user424616

+0

Ich habe gerade meine Antwort mit einer jQuery-Lösung bearbeitet, die für ältere Browser funktionieren könnte :) –

+0

awesome Razor. Woher kennst du solche Sachen? Dies ist die Art von Wissen, die wirklich nützlich und überhaupt nicht bekannt ist. GG Mate –

Verwandte Themen