2013-02-11 170 views
18

jQueryを使用して、多くの場合、プッシュボタン用にmousedownイベントとmouseupイベントを組み合わせて使用​​します。'mouseup'イベントと 'click'イベントの違いは何ですか?

しかし、私はmouseupイベントを使用しましたが、代わりにclickイベントをバインドすると同じ結果が得られたようです。

以下の2つの方法に大きな違いはありますか?

// Method 1 
$('.myButton').bind('click', callback); 

// Method 2 
$('.myButton').bind('mouseup', callback); 

ご注意ください私は両方の方法の使用の違いについての技術的な説明を探しています。 Differentiate click vs mousedown/mouseup

+1

@OneTrickPony私は同意しません。私は、ユーザーがクリックして保持しているかどうかを検出するのではなく、2つのイベントの技術的な違いを知りたい。 – caiosm1005

+2

マウスイベントは、Ipadsや携帯電話などのジェスチャーベースのデバイスでは機能しません。 –

+1

両方の質問を慎重に読んでいなくても、本当にフラグが立っていますか?再開してください。それは詐欺ではありません。 – caiosm1005

答えて

42

mouseupイベントでは、画面上の他の場所をクリックし、クリックボタンを押したままポインタをmouseup要素に移動することができます。これは、マウスポインタを離します。

クリックイベントでは、その要素でmousedownイベントとmouseupイベントが発生する必要があります。

通常のクリックでは、クリックにはmousedownイベントとmouseupイベントの両方が必要なので、clickイベントをお勧めします。

重複している可能性があるため、mouseupおよびmousedownイベントは、左クリックボタン以外のマウスボタンによっても発生する可能性があります。これは一般的なユーザーが期待するものとは非常に異なります。

+3

W3Cは、 'click'、' mousedown'、 'mouseup'が目的の結果を得るほとんどのマウスイベントで' click'を使うことを推奨しています。後者の2つは、必要に応じて制御を追加するために存在します。 –

+0

私のテストによると、クリックはマウスボタンでも発生するようです。 http://jsfiddle.net/zRr4s/84/ –

+2

を参照してください。マウスの中央のスクロールボタンは、要素の上をクリックするとクリックイベントを引き起こします。 – jessica

0

私のコード方法に大きな影響を与えます。 URLを変更するのはa tagclick eventです。 mousedownやmouseupイベントはこれを達成するでしょう

1

私の理解では、「クリック」すると、複雑な要素がたくさん隠されています(例えば、同じ要素にmousedown/upが発生しているか、ESC /右クリックでキャンセルしているかなど)。 「mousedown/up」の上に「クリック」を使用するのが望ましいはずです。

基本的なDOM要素が置き換えられるようにアプリが頻繁にコンテンツを更新すると、「クリック」が機能しないようなシナリオが1つあります。この場合、「クリック」がトリガーされず、顧客の利便性が低下する可能性があります。

関連する問題