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テーブルをマージして削除する簡単な方法

シナリオ:クロールされたデータは、別のメインテーブルと同じ構造を持つデータテーブルを生成するため、マ...

vue の v-bind を理解する

目次1. v-bindの主要ソースコードの分析1. v-bind属性はどこに均一に保存されるか: a...

MySQLクエリ制御ステートメントの詳細なグラフィック説明

mysql クエリ制御ステートメントフィールド重複排除 **キーワード: 明確** 構文: テーブル...

HTMLのリストタグを数える

1. <dl>はリストを定義し、<dt>はリスト内の項目を定義し、<d...

光沢のある輝くウェブサイトデザインの感動的なデザイン例

このコレクションには、あなたのデザインアイデアにインスピレーションを与える、輝いて光沢のある、優れた...

Vueはファイルのアップロードとダウンロード機能を実装します

この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...

コンパイル、インストールから設定ファイルの説明まで、中国語でnginxの詳細な説明

この記事では、コンパイルとインストールから設定ファイルの説明まで、Nginx について詳しく紹介しま...

Vue フィルターの実装と適用シナリオの詳細な説明

1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

入力のid属性とname属性の違いの例

長い間ウェブサイトを作ってきましたが、入力時のnameとidの違いがまだわかりません。最近jQuer...

MySQLのロック機構に関する最も包括的な説明

目次序文グローバルロック完全なデータベース論理バックアップFTWRL と set global re...

React.js フレームワーク Redux 基本ケースの詳細な説明

react.js フレームワーク Redux https://github.com/reactjs/...

JavaScript でプロパティハイジャックを実装する方法 defineProperty

目次序文記述子getとsetの詳細な説明オブジェクトの属性の乗っ取りオブジェクトのすべてのプロパティ...

Nginx はリクエスト接続を統合し、ウェブサイトのアクセス例を高速化します

序文世界最高の Web サーバーの 1 つである Nginx の利点は明らかです。 Nginx がリ...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...