Frage

Die jQuery Dokumentation die Bibliothek sagt hat eine integrierte Unterstützung für die folgenden Ereignisse: Unschärfe, Fokus, Last, vergrößern, verkleinern, blättern, entladen, klicken Sie auf, dblclick, mousedown-, mouseup, mousemove-, Mouseover, mouseout, MouseEnter-, mouseleave, ändern, wählen Sie, senden, keydown, keypress, keyup und Fehler.

Ich brauche zu behandeln kopieren und einfügen Ereignisse. Wie man am besten, das zu tun? FWIW, ich nur über WebKit kümmern (lucky me!).

UPDATE: Ich arbeite an einem "Widget" in einer Dashboard-ähnlichen Umgebung. Es nutzt WebKit, so dass es nur wirklich wichtig ist (für meine Zwecke), ob diese Ereignisse dort unterstützt werden, was es sieht aus wie sie sind.

War es hilfreich?

Lösung

Sie können Veranstaltungen jeder Art hinzuzufügen und zu entfernen, indem Sie den .on() und off() Methoden

Versuchen Sie diese, zum Beispiel

jQuery(document).on('paste', function(e){ alert('pasting!') });

jQuery ist eigentlich ganz gleichgültig, ob der Ereignistyp Sie vergeben vom Browser unterstützt wird, so können Sie beliebige Ereignistypen Elemente (und allgemeine Objekte) zuweisen, wie:

jQuery('p').on('foobar2000', function(e){ alert(e.type); });

Bei benutzerdefinierten Ereignistypen, müssen Sie .trigger() sie „von Hand“ im Code, wie dieser :

jQuery('p').trigger('foobar2000');

Ordentlich was?

Ferner wird in einer Cross-Browser-kompatible Art und Weise mit proprietären / custom DOM-Ereignissen zu arbeiten, müssen Sie verwenden / schreiben Sie eine "jQuery Event-Plugin" ... Beispiel in zu sehen sind jquery.event.wheel.js Brandon Aarons Mausrad Plugin

Andere Tipps

Verschiedene Zwischenablage Ereignisse sind in Javascript verfügbar, obwohl Unterstützung fleckig ist. QuicksMode.org hat einen Kompatibilität grid und Testseite . Die Ereignisse werden nicht durch jQuery ausgesetzt, so dass Sie entweder auf die Bibliothek erweitern oder native Ereignisse Javascript verwenden.

Mozilla unterstützt ein „Input“ Ereignis, das ich für Probleme bei der Suche nützliche Dokumentation habe. Am allerwenigsten, ich weiß, es feuert auf Paste.

   this.addEventListener('input',
    function(){//stuff here},
    false
   );

Wie jQuery 1.7 können Sie bind (...) und unbind (...) Methoden zum Anbringen und Entfernen bzw. Handler.

Hier sind Beispiele richten Ihre questuion:

$('#someElementId').bind('paste', function(){return false;});

- dieser wird alle Versuche blockieren aus der Zwischenablage in Elementkörper einzufügen. Sie können auch mit schneiden , Kopie und andere als Ereignistypen (siehe Links unten)

$('#someElementId').bind('copy', function(){return alert('Hey fella! Do not forget about copyrights!');});

Also, in anderen Fällen, wenn Sie diese Handler entfernen möchten, können Sie unbind () Methode:

$('#someElementId').unbind('copy');

Hier einige nützliche Links:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top