2017-05-24 8 views
0

ここにサンプルコードがあります。検索IDの外側でクリックを無効にしたい多分CSSプロパティ特定の部門の外でクリックを無効にする方法

$('*:not(#search)').click(function(e){ 
 
    e.preventDefault(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="http://google.com">I don't work !</a> 
 
<div id="search"></div>

+0

まあ、クリックすると、何もしないので、なぜあなたはあなたが達成したいのかを教えないのですか?入力のみにフォーカスしている場合は、クリックイベントをバインドして入力にフォーカスすることができます – trichetriche

+0

検索のポップを表示し、そのdivの外部クリックを無効にしたい –

答えて

1

ポップアップに必要なだけのようなあなたは.preventDefault() JS機能と組み合わせる:not() CSSセレクタを使用することができますpointer-eventsはあなたが探しているものです。

ポップアップを開くと、body要素にクラスを追加します。ポップアップが表示されている場合はクラスをbody要素に追加するとします。

body.popup *:not(#search) { 
    pointer-events: none; 
} 

この手段、#searchがクリックできない要素を除いたクラス.popupとbody要素内のすべての要素(*)、その:あなたは、CSSでこのようにそれを行うことができます。

+0

e.preventDefault()の代わりに 'return false' ; 'デフォルトイベントだけを防止します。 – prasanth

+0

私のために働いていない –

+0

スニペットで私の答えを更新しました、それは動作します:) – Zenoo

0

:私たちは外でクリックを無効にする

<body> 
You can search <a href="google.com">here</a> 
<div id="search"> 
Search 
<input type="text" name=search><button>search</button> 
</div> 
</body> 
1

画面全体にまたがる固定位置のdivを作成し、その中をクリックできるようにして、その要素の外側にあるすべてのクリックを実際には "空の" divにすることができます。

.disable-outside-clicks { 
 
    position: fixed; 
 
    top: 0; 
 
    right: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
} 
 

 
.enabled-clicks { 
 
    width: 200px; 
 
    margin: 0 auto; 
 
}
<div> 
 
    <button>This button will not work</button> 
 
</div> 
 

 
<div class="disable-outside-clicks"> 
 
    <div class="enabled-clicks"> 
 
    <button>This button will work</button> 
 
    </div> 
 
</div>

関連する問題