2013-08-12 5 views
5

Ich habe festgestellt, dass das kleine x-Symbol in IE 9 und niedriger nicht an meine jquery Ereignisse wie im IE bindet 10 (und bessere Browser wie Chrome). Dies ist das x-Symbol ich spreche:Wie kann ich ein Ereignis an das Clear X-Button-Symbol im Internet Explorer binden (siehe Bild)

enter image description here

Gibt es eine Weise, die ich manuell dieses kleine x-Symbol binden kann? Ich habe viele Beiträge über gesehen, wie die x-Taste verstecken CSS wie folgt aus:

<style type="text/css"> 
    ::-ms-clear { 
    display: none; 
    } 
</style> 

aber ich werde nicht wirklich ein Click-Ereignis zu dieser Sache zu binden. Kann es getan werden?

+0

Könnten Sie bitte versuchen, ein [jsFiddle] (http://jsfiddle.net/) zu erstellen, um es in Aktion zu sehen? Erscheint merkwürdig. – Brewal

+0

Hier ist etwas, was ich versuche zu tun. Aber statt eines Änderungsereignisses möchte ich tatsächlich den Klick der x-Schaltfläche abfangen können: http://jsfiddle.net/MDMV5/ –

+0

Ich habe verstanden, was Sie versucht haben zu tun, aber wir müssen dies besonders sehen "x" -Taste, die das Problem verursacht. – Brewal

Antwort

1

Es ist nicht möglich, an Pseudoelemente zu binden. Sie können jedoch ein Div erstellen und absolut darüber positionieren und dann daran binden. Das sollte den Benutzer davon abhalten, auf das tatsächliche x zu klicken.

+0

Ich habe gerade ein Symbol erstellt, um dieses alberne Pseudo-Element abzudecken, und es funktioniert großartig. Vielen Dank! –

0

Jedes HTML-Element hat ein Klickereignis. Ich verstehe den Kontext dieses "x" -Buttons, den Sie erwähnen, nicht vollständig; Wenn dieses Element jedoch im DOM so manipuliert wurde, dass es erneut gerendert wurde (z. B. $ ("# somediv") .dialog()), werden alle JavaScript-Funktionen oder Manipulationen, die vor diesem Aufruf angehängt wurden, gelöscht. Die beste Lösung in diesem Fall ist es, die Ereignisart zu definieren, nachdem alle Manipulationen abgeschlossen sind.

Wenn ein Element im laufenden Betrieb manipuliert wird, müssen die Ereignisse dieses Elements möglicherweise später erneut verknüpft werden.

Wenn dies ein von jQuery DOM erstelltes Objekt ist, müssen Sie möglicherweise einen Drilldown nach $ (query) .find (query) ausführen (oder aufwärts abhängig von der Referenz durch $ (query) .parent()).