2012-04-02 12 views
4

Ich mache eine Chrome-Erweiterung, um Google Mail für meine Freunde und meinen persönlichen Gebrauch Javascript-Verschlüsselung hinzuzufügen. Ich habe das meiste davon funktioniert, außer wenn ich versuche, eine Schaltfläche bereits in der Google Mail-Oberfläche zu klonen, indem Sie $('#elmId').clone(true) tun, klont die Event-Listener nicht. Auch $('#elmId').data('events') kommt mit nichts auf. Ich weiß, dass die Schaltfläche mehrere Ereignis-Listener hat, da die Entwickler-Tools beim Klicken auf Element, Klick, Mouseover usw. unter der Registerkarte "Event Listeners" angezeigt werden (siehe http://i.stack.imgur.com/9KnIW.png & http://i.imgur.com/1sszQ.png). Ist das überhaupt möglich? Ich habe ziemlich viel gesucht und mir nichts einfallen lassen. Irgendwelche Ideen, wie man das macht oder ob es überhaupt möglich ist?Wie kann man Elemente klonen und die Ereignislistener erhalten?

Antwort

-1

Auch wenn das Klonen des Event-Listeners technisch möglich ist, heißt das nicht, dass es sinnvoll ist. Der Hörer kann ein Verschluss sein, der über das Element kennt, wird die gleiche Verschluss auf einem anderen Element mit nicht zur Arbeit gehen ... zum Beispiel

x.onclick = function(){document.body.removeChild(x);} 

in diesem Fall der onclick Handler entfernt das Element x, aber wenn Sie kopieren das Element und der Handler, der auf die Kopie klickt, würde das Original immer noch schließen.

Verwandte Themen