質問

jQueryのドキュメントは、ライブラリが次のイベントの組み込みサポートを備えていると述べています。ぼかし、フォーカス、ロード、サイズ変更、スクロール、アンロード、クリック、dblclick、mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave、変更、選択、送信、キーダウン、キー押下、キーアップ、およびエラー

切り取り、コピー、貼り付けのイベントを処理する必要があります。それをどのように行うのが最善ですか? FWIW、私はWebKitについて心配するだけです(幸運なことに!)。

更新:「ウィジェット」で作業していますダッシュボードのような環境で。 WebKitを使用しているので、これらのイベントがそこでサポートされているかどうかは(私の目的では)本当に重要です。

役に立ちましたか?

解決

.on()を使用して、あらゆる種類のイベントを追加および削除できます。 および off() メソッド

たとえば、これを試してください

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

jQueryは、実際には、割り当てるイベントタイプがブラウザでサポートされているかどうかにはまったく関係がないため、次のような要素(および一般的なオブジェクト)に任意のイベントタイプを割り当てることができます。

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

カスタムイベントタイプの場合、 .trigger() それらを「手動で」次のようにコードで:

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

きちんとしたええ?

さらに、プロプライエタリ/カスタムDOMイベントをクロスブラウザー互換の方法で使用するには、「jQueryイベントプラグイン」を使用/作成する必要があります。 ...その例は、 jquery.eventにあります。 wheel.js Brandon Aaronのマウスホイールプラグイン

他のヒント

Javascriptではさまざまなクリップボードイベントを使用できますが、サポートは不完全です。 QuicksMode.orgには、互換性グリッドテストページ。イベントはjQueryを通じて公開されないため、ライブラリを拡張するか、ネイティブJavascriptイベントを使用する必要があります。

Mozillaは" input"をサポートしています。有用なドキュメントを見つけるのに苦労しているイベント。少なくとも、ペーストで発火することは知っています。

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

jQuery 1.7では、 bind(...)および unbind(...)メソッドを使用して、それぞれハンドラーをアタッチおよび削除できます。

ここにあなたの探求を調整する例があります:

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

-これは、クリップボードから要素本体への貼り付けをブロックします。イベントタイプとして cut copy などを使用することもできます(以下のリンクを参照)

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

したがって、他の場合では、これらのハンドラーを削除するときは、 unbind()メソッドを使用できます:

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

ここにいくつかの便利なリンク:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top