2012-05-24 33 views
1

我有一個似乎很簡單的問題,但我似乎無法找到解決方案。我基本上有一個觸發點擊事件的div。我的HTML是:JQuery單擊事件不針對div兒童

<li class="infobox"> 
     <a href="#"><img class="thumb" src="img/2.jpg" alt="image02" /></a> 
     <div class="over"> 
     <img src="img/search_icon.png" alt="read more" /> 
     <h6>New business</h6> 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p> 
     </div> 
    </li> 

和我的jQuery代碼是:

$('#news_gallery li .over').click(function(event) { 
    // I have animation code here 
}); 

問題是這樣的:該功能工作正常,除了事實的單擊事件不會對IMG或任何的工作在div'.over'內的文本。爲什麼子元素不會傳遞給點擊事件?我是否需要將特殊參數傳遞給函數?

+1

HM應該...冒泡將達'.over'如果你點擊 –

+1

在這裏工作的後代:HTTP://的jsfiddle .net/mUK7N/3/ –

+1

順便說一下,也許你的標記應該包括'#news_gallery'和那個'li'的''ul'容器。 –

回答

-1

您可以嘗試以下操作:

<li class="infobox"> 
     <a href="#"><img class="thumb" src="img/2.jpg" alt="image02" /></a> 
     <div class="over"> 
     <img src="img/search_icon.png" alt="read more" /> 
     <h6>New business</h6> 
     <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit</p> 
     </div 
</li> 

和JS:

$('.infobox .over').click(function(e) { 
    console.log(e); 
}); 
0

我懷疑DIV內容是動態的。在設置事件後加載內容時,新插入的元素沒有任何關聯的事件。一個快速的解決辦法是使用 「住」,而不是「點擊」

$('#news_gallery li .over').live('click',function(event) { 
    // I have animation code here 
});