DIVマスクを使用して、マウスでチェックボックスを直接チェックすることが無効である問題を解決します

DIVマスクを使用して、マウスでチェックボックスを直接チェックすることが無効である問題を解決します
フロントエンドの開発過程で、チェックボックスが必要な状況が発生しました。ユーザー操作の利便性を考慮して、クリックイベントを DIV に配置しました。 (ここではknockout.jsが使用されています)

コードは大まかに次のようになります。

コードをコピー
コードは次のとおりです。

<div id="one" データバインド="click:clickevent">
<input type="checkbox"><span>ご質問がある場合はチェックしてください</span>
</div>

しかし、このように記述すると奇妙な現象が発生しました。マウスで div をクリックするとすべて正常でした。

しかし、マウスでチェックボックスを直接チェックするのは通常ではありません。

チェックボックスはチェックされていない状態です。チェックボックスをマウスでクリックしてチェックします。このとき、次の操作が実行されるはずです。1. div の clickevent イベントを実行します。2. イベントが実行されると、チェックボックスはチェックされた状態になります。

しかし、最終結果はチェックボックスがまだチェックされていないことです。

追跡とデバッグの結果、clickevent イベントが実行されると、チェックボックスはまだチェックされた状態ですが、clickevent の実行後に jquery コードが実行され、2 ~ 3 ステップ後にチェックボックスがチェックされていない状態に変更されます。

理由はまだ見つかっていません。 (別の場所で使用されているラジオボックスでも同様の状況が発生します)

他に方法はないので、回避策を講じる必要があります。チェックボックスをdivで覆い、マウスをクリックするとチェックボックスではなくdivがクリックされるようにし、クリックイベントを通じてチェックボックスの状態を変更します(クリックイベントにはチェックボックスの状態を変更するコードが既に含まれています)。

実装は次のとおりです。

コードをコピー
コードは次のとおりです。

<div id="1">
<div id="two" データバインド="click:clickevent"></div>
<div id="3">
<input type="checkbox"/> <span>ご質問がある場合はチェックしてください</span>
</div>
</div>

ID 2 と 3 の 2 つの div には、2 つのプロパティ (position: absolute; z-index: 1;) を設定する必要があります。

上層の div の z-index 属性は、下層の div の z-index 属性よりも大きくなっています。

上記の DIV の ID 属性は説明用です。プログラムでは、通常、class 属性が使用されます。

<<:  CSS3で線形グラデーションを実装するためのコードの詳細な説明

>>:  MYSQL の 10 の典型的な最適化ケースとシナリオ

推薦する

MySQLデータ遅延ジャンプの問題の解決策

今日は、データベース遅延ジャンプに関する別の典型的な問題を分析しました。このプロセスでは、参考のため...

MySQL 5.7.17 のインストールと設定方法のグラフィックチュートリアル (Win7 の場合)

Windows 7 で MySQL 5.7.17 をインストールする方法についてのグラフィック チ...

CSS を使用して固定左列と適応右列の 2 列レイアウトを実現する 4 つの方法

1. フロート+オーバーフロー:非表示このメソッドは主にオーバーフローを通じて BFC をトリガーし...

異なる列を持つテーブルのクエリ結果のSQLマージ操作

2 つの異なるテーブルをクエリするには、結果をマージする必要があります。たとえば、table1 の列...

MySQLクエリプランでken_lenの値を計算する方法

key_lenの意味MySQL では、次に示すように、explain を使用して SQL ステートメ...

ウェブサイトの画像にグレー効果を加える3つの方法

私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っていま...

カルーセルカルーセルケースのJS実装

この記事の例では、カルーセルカルーセルを実装するためのJSの具体的なコードを参考までに共有しています...

Linux (Centos7) に mysql8.0.18 をインストールするチュートリアル図

1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

Vue を使用してパブリック アカウントの Web ページを開発する方法

目次プロジェクトの背景始めるvue-cliでプロジェクトを作成するモバイル適応についてnormali...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

Nginx 仮想ホストを構成する 3 つの方法 (ドメイン名に基づく)

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮...

dockerでopenGaussデータベースを構成する方法の詳細な説明

Windowsユーザー向けDocker で openGauss を使用するopenGaussイメージ...

JavaScript Alert関数の実行順序の詳細な説明

目次質問分析する解決するAlert() 関数を置き換えるsetTimeOut関数まとめ質問数日前、J...