[解決済み] 要素外クリックの検出
2022-04-24 12:37:23
質問
要素の外側でクリックを検出するにはどうすればよいですか?Vue.jsを使用しているので、テンプレート要素の外側になる予定です。私はVanilla JSでそれを行う方法を知っていますが、私はVue.jsを使用しているときに、それを行うためのより適切な方法があるかどうかは分かりませんか?
Vanilla JSの場合はこのように解決します。 Javascript divの外側でクリックイベントを検出する
要素にアクセスするためのより良い方法を使用することができると思います?
どのように解決するのですか?
この解決策は、Vue 1でのみ動作することに注意してください。
カスタムディレクティブを一度設定することで、うまく解決することができます。
Vue.directive('click-outside', {
bind () {
this.event = event => this.vm.$emit(this.expression, event)
this.el.addEventListener('click', this.stopProp)
document.body.addEventListener('click', this.event)
},
unbind() {
this.el.removeEventListener('click', this.stopProp)
document.body.removeEventListener('click', this.event)
},
stopProp(event) { event.stopPropagation() }
})
使用方法
<div v-click-outside="nameOfCustomEventToCall">
Some content
</div>
コンポーネントで
events: {
nameOfCustomEventToCall: function (event) {
// do something - probably hide the dropdown menu / modal etc.
}
}
JSFiddle の Working Demo に注意事項を追加しました。
関連
-
fetch ネットワークリクエストラッパーの説明例
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】JavaScriptで「無効な日付」のDateインスタンスを検出する
-
[解決済み] 要素外でのクリックを検出するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] jQueryで要素にスクロールする
-
[解決済み] jQueryのdocument.createElementと同等?
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] How to append text to a `<div>`?
-
[解決済み] JavaScriptでクリックをシミュレートするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptの関数この指摘の問題を説明
-
vue+webrtc(Tencent cloud)ライブ機能の実践を実現するために
-
vueディレクティブv-bindの使用と注意点
-
vueにおけるfilterの適用シーンについて解説します。
-
[解決済み】Node.jsで "Cannot find module "エラーを解決するには?
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
JavaScriptのgetElementById()メソッド入門
-
[解決済み】右クリックはJavascriptのイベントですか?