2011-01-12 15 views
0

私は画像をクリックしてズームインするスクリプトを持っていますが、画像の外側をクリックして閉じることができます。jQuery:divの外にある "残りの領域"を選択する方法はありますか?

私はボディに機能を設定している場合

$(body).click(function{ closeImage(); }) 

が(ちょうど例のためにopenImage();それを呼びましょう、その関数と私はイメージのために作成された通常の関数との間に矛盾することotの起こっているのに気づきました)...

「残りの領域」を選択する方法はありますので、画面のうち唯一の部分はcloseImage();です。

UPDATE:私の問題を明確にする:私は少年に機能を設定してから、私は画像をクリックすると、それは身体機能

+0

あなたのHTMLとJSを表示できますか? – hunter

+0

私のコードは本当に重要ではありません...ユーザーが画像をクリックするとちょうどzoon関数が起動します... – Francesco

答えて

1

は、両方の身体と要素にイベントハンドラをアタッチが、身体ハンドラは特定のサブハンドラに対して発生しないようにバブリングイベントをキャンセルする方法についてはthis answerを参照してください。

+0

ありがとう!これはまさに私が探していた機能です! $(function(){ $( "body"){ if(e.target.id == "myDiv" || $(e.target).parents( "#myDiv ").size()){ alert(" inseide div "); } else { alert(" outside div "); } }); }}) – Francesco

0

と私はむしろ「ガラス」を置く競合するため、画像はもうズームdoesntの身体の上に、その上に画像を表示します(もちろん、そのガラスをクリックしてバインドします)。多くのサイトではそのようになっています(非透明ガラスの場合もあります)。

0

はこれを試してみてください:

 
$(body + ':not(#imageID)').click(function{ closeImage(); }); 
0

one()を使用することを検討してください。自動的に解凍されると自動的にバインド解除されます。

http://api.jquery.com/one/