2011-09-14 242 views
1

我有一個div在頁面的中心。我有身體背景圖像。 我只需要在背景圖像上使用jquery點擊。 如果您單擊帶有divPage的div,則不會發生任何情況。jquery - 背景圖像點擊

感謝您的建議或可能的其他解決方案。

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;} 

我想這一點,但它不能正常工作:

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

這是單擊帶有DIV id id divPage。

+0

這是不可能的。點擊後背景圖片不會被點擊測試。 – Tejs

+0

你想獲得divPage以外的點擊嗎? –

回答

8

你可以試試:

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

請注意,如果你的內容的高度是非常低的,你可能會想是這樣的:

body, html { 
    height: 100%; 
} 
在你的CSS

,否則會有沒有可點擊的物體。

演示:http://jsfiddle.net/mp4TH/

0

未經檢驗的,但如何對這樣的事情:

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

雖然它沒有檢測到背景圖像上點擊,它會阻止點擊動作爲傳播在機身頂部的任何元素。所以點擊將僅在身體上被檢測到。

+0

爲什麼在發佈4年後downvote?! – n00dle

+1

反擊倒退。 –

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

這是更正確的方法。