マウスダウンのチェックボックス、マウスアップのチェックボックスを外します

ジウォペン

マウス/キー/タッチが押されたときにのみチェックされるチェックボックスがあるjQueryアプリケーションを作成しています。マウスダウンをオンにし、マウスアップをオフにします。

を使用してもevent.preventDefault()、マウスボタンが押されていなければチェックボックスはオンのままですが、スペースバーは正常に機能します。

$(function() {
  var cb = $("input");
  cb
    .on("mousedown keydown", function(event) {
      event.preventDefault();
      cb.prop("checked", true);
    })
    .on("mouseup keyup", function(event) {
      event.preventDefault();
      cb.prop("checked", false);
    });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type=checkbox autofocus>

上記のコードは、どのような状況(タッチなど)でも正しく機能するために少し作業が必要であることを知っていますが、テスト目的でのみ記述されています

ロリー・マクロサン

この問題は、チェックボックスでリリースされたclickときにイベントが発生しmouseup、これによりcheckedプロパティが強制的に実行されるためtrueです。このフックを修正するには、イベントハンドラーをにフックし、それをclick呼び出すだけpreventDefault()です。

またon()on()複数回呼び出す代わりに、フックするイベント名がキーなるオブジェクトを提供できることにも注意してください

$(function() {
  var $cb = $("input");
  $cb.on({
    "mousedown keydown": function(e) {
      e.preventDefault();
      $cb.prop("checked", true);
    },
    "mouseup keyup": function(e) {
      e.preventDefault();
      $cb.prop("checked", false);
    },
    'click': function(e) {
      e.preventDefault();
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type=checkbox autofocus>

または、@ enapupeがコメントで指摘しているように、mouseupイベントハンドラーを完全に削除し、デフォルトのclickイベントを通常どおり実行して、チェックボックスの状態を切り替えることができます。

$(function() {
  var $cb = $("input");
  $cb.on({
    "mousedown keydown": function(e) {
      e.preventDefault();
      $cb.prop("checked", true);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type=checkbox autofocus>

どちらでも機能しますが、clickイベントの抑制に関して必要な動作によって異なります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

最初にチェックボックスをクリックすると、モーダルポップアップウィンドウが表示されます。オンセカンドクリックでチェックボックスのチェックを外すにはどうすればよいですか?

分類Dev

チェックボックスのドロップダウンを変更します

分類Dev

ボケチェックボックスのチェックを外します

分類Dev

ドロップダウンリストのチェックボックス

分類Dev

WPFの上にマウスを置くまでチェックボックスを非表示にします

分類Dev

チェックボックスのチェックボックスにドロップダウンを表示する

分類Dev

アクセス:チェックボックスのドロップダウンリスト

分類Dev

複数選択チェックボックスのドロップダウン

分類Dev

JSチェックボックスのドロップダウン

分類Dev

AngularJS-チェックボックスのチェックを外します

分類Dev

WooCommerceのマイアカウント「アカウントの詳細」にチェックボックスを追加します

分類Dev

ノックアウトチェックボックス-チェックした値のみを配列にプッシュします

分類Dev

マップの[ReactNative]チェックボックスを選択します

分類Dev

Bitbucketのマークダウンで機能しないチェックボックス

分類Dev

jspの各ドロップダウンリスト要素にチェックボックスを追加する方法

分類Dev

チェックボックスチェックのチェックボックスの背景色を変更し、チェックを外します

分類Dev

角度チェックボックスとデータのチェックボックスを外します

分類Dev

チェックボックスをクリックして、2つのドロップダウンに同じ値を設定します

分類Dev

それぞれのチェックボックスをクリックすると、ドロップダウンを表示/非表示にします

分類Dev

チェックボックスのフォーマットに関するブートストラップ動的ドロップダウン

分類Dev

Angularマテリアルチェックボックスは自動的にチェックを外します

分類Dev

ノックアウトjsのチェックボックスをオフにします

分類Dev

チェックボックスの値をユーザーのアカウントに保存します

分類Dev

チェックボックス要素の選択時にドロップダウンを閉じませんか?

分類Dev

ソフトウェアソースリスト>他のソースタブ>各ppaリンク以外のチェックボックスのチェックマークは何をしますか?

分類Dev

Androidのレイアウトとチェックボックス

分類Dev

VBAすべてのチェックボックス、コンボボックス、テキストボックス、およびデータ検証ドロップダウンリストをリセットします

分類Dev

ドロップダウンリスト(MVC)にチェックボックスアイテムを表示する

分類Dev

ドロップダウンの代わりにチェックボックスを表示する

Related 関連記事

  1. 1

    最初にチェックボックスをクリックすると、モーダルポップアップウィンドウが表示されます。オンセカンドクリックでチェックボックスのチェックを外すにはどうすればよいですか?

  2. 2

    チェックボックスのドロップダウンを変更します

  3. 3

    ボケチェックボックスのチェックを外します

  4. 4

    ドロップダウンリストのチェックボックス

  5. 5

    WPFの上にマウスを置くまでチェックボックスを非表示にします

  6. 6

    チェックボックスのチェックボックスにドロップダウンを表示する

  7. 7

    アクセス:チェックボックスのドロップダウンリスト

  8. 8

    複数選択チェックボックスのドロップダウン

  9. 9

    JSチェックボックスのドロップダウン

  10. 10

    AngularJS-チェックボックスのチェックを外します

  11. 11

    WooCommerceのマイアカウント「アカウントの詳細」にチェックボックスを追加します

  12. 12

    ノックアウトチェックボックス-チェックした値のみを配列にプッシュします

  13. 13

    マップの[ReactNative]チェックボックスを選択します

  14. 14

    Bitbucketのマークダウンで機能しないチェックボックス

  15. 15

    jspの各ドロップダウンリスト要素にチェックボックスを追加する方法

  16. 16

    チェックボックスチェックのチェックボックスの背景色を変更し、チェックを外します

  17. 17

    角度チェックボックスとデータのチェックボックスを外します

  18. 18

    チェックボックスをクリックして、2つのドロップダウンに同じ値を設定します

  19. 19

    それぞれのチェックボックスをクリックすると、ドロップダウンを表示/非表示にします

  20. 20

    チェックボックスのフォーマットに関するブートストラップ動的ドロップダウン

  21. 21

    Angularマテリアルチェックボックスは自動的にチェックを外します

  22. 22

    ノックアウトjsのチェックボックスをオフにします

  23. 23

    チェックボックスの値をユーザーのアカウントに保存します

  24. 24

    チェックボックス要素の選択時にドロップダウンを閉じませんか?

  25. 25

    ソフトウェアソースリスト>他のソースタブ>各ppaリンク以外のチェックボックスのチェックマークは何をしますか?

  26. 26

    Androidのレイアウトとチェックボックス

  27. 27

    VBAすべてのチェックボックス、コンボボックス、テキストボックス、およびデータ検証ドロップダウンリストをリセットします

  28. 28

    ドロップダウンリスト(MVC)にチェックボックスアイテムを表示する

  29. 29

    ドロップダウンの代わりにチェックボックスを表示する

ホットタグ

アーカイブ