2011-09-14 10 views
1

私はページの中央にdivを持っています。私は体の中に背景イメージを持っています。 jqueryのクリックは背景画像でのみ行う必要があります。 divのIDを持つdivをクリックすると、何も起こりません。Jquery - background-image click

アドバイスありがとうございました。

HTML:

<body> 
    <form id="formBackground" method="post"> 

     <div id="divPage"> 
    Text. 
     </div> 
    </form> 
</body> 

CSS

body{ 
padding: 0px; 
margin: 0px; 
font-family: Arial, Verdana, Helvetica, sans-serif; 
font-size: 12px; 
color: white; 
background-image: url('../images/backgrounds/bg.jpg'); 
background-repeat:no-repeat; 
background-position:top;} 

div#divPage{ 
width: 800px; 
height: 300px; 
margin: auto;} 

私はこれを試してみましたが、それは正しく動作しません:それはとdiv要素をクリックしてください

$('body').click(function() { 
      alert("Click"); 
     }) 

ましたid id divPage。

+0

これは不可能です。背景画像はクリックに対して視認可能なテストではありません。 – Tejs

+0

divPageの外でクリックを取得しますか? –

答えて

8

あなたが試すことができます:あなたのCSSの

body, html { 
    height: 100%; 
} 

、または存在します:

$(function() { 
    $('body').bind('click', function (evt) { 
    if(evt.target == $('body')[0]) { 
     console.log('body clicked'); 
    } 
    }); 
}); 

注意を、あなたのコンテンツの高さが非常に低い場合、あなたはおそらくのようなものがよいでしょうクリック可能なボディはありません。

デモ:http://jsfiddle.net/mp4TH/

0
このような何かについて

テストされていないが、どのように:

$('body').click(function() { 
      alert("Click"); 
     }) 
$('body>*').click(function(e) { 
      e.stopPropagation() 
}) 

それは背景画像上にクリックを検出していない一方で、それは身体の上に任意の要素のために伝播するクリック操作を防ぐん。したがって、クリックはボディ自体でのみ検出されます。

+0

なぜこのdownvoteが4年後に掲載されたのですか? – n00dle

+1

ダウンローダに反対しました。 –

0
$('#divPage').click(function(evn) { 
    evn.stopPropagation(); 
}); 

これはより正しい方法です。