jQuery bind click *ANYTHING*ただし*ELEMENT*は除く。
2023-09-30 01:44:23
質問
いくつかの要素が浮いていて、私は指定されたもの(例えばdiv#special)以外の何か(div、body、何でも...)をクリックしたときに何かをしようとしているとします。
私が思いつく以下の方法以外に、これを実現する良い方法はないかと考えているのですが...。
$(document).bind('click', function(e) {
get mouse position x, y
get the element (div#special in this case) position x, y
get the element width and height
determine if the mouse is inside the element
if(inside)
do nothing
else
do something
});
どのように解決するのですか?
を処理するには、次のようにします。
ただし
とすると
この
要素がクリックされた場合、一般的なアプローチでは、イベントハンドラを
document
にイベントハンドラを追加し、次に別のイベントハンドラを "except this" 要素に追加して、単にクリックイベントが
document
;
$('#special').on('click', function(e) {
e.stopPropagation();
});
$(document).on('click', function (e) {
// Do whatever you want; the event that'd fire if the "special" element has been clicked on has been cancelled.
});
参照
は
event.stopPropagation()
ドキュメント
. jQuery 1.7より前のバージョンを使用している場合(この質問がなされたときと同じ)には、このドキュメントにあるように
on()
を使うことができません。
on()
を
bind()
この場合の署名は同じです。
デモはこちら http://jsfiddle.net/HBbVC/
関連
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryでチェックボックスに "checked "を設定する
-
[解決済み] jQueryの「exists」関数はありますか?
-
[解決済み] jQueryでテーブルの行を追加する
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryで複数のクラスを持つ要素を選択するにはどうすればよいですか?
-
[解決済み] jQueryでval()がchange()をトリガーしない
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
-
[解決済み] jQueryを使用して文字列から最後の文字を削除する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] jQueryのpreventDefault()が発動しない
-
[解決済み] jQueryでオブジェクトに登録されたイベントハンドラを検索する
-
[解決済み] jQueryでtextareaの値を設定する
-
[解決済み] jQueryを使用してCSSのdisplay noneまたはblockプロパティを変更するにはどうすればよいですか?
-
[解決済み] jQueryで5秒待つには?
-
[解決済み] jQueryでloading spinnerを表示するには?
-
[解決済み] val()を使ってselectの値を設定しても、jqueryのchangeイベントが発生しないのはなぜですか?
-
[解決済み] jquery input select all on focus
-
[解決済み] jQueryで選択されたオプションのインデックスを取得する