2011-10-16 56 views
1

這是我的代碼:.delegate與通用選擇

$('p').delegate('*', 'click', function() { 
    console.log('You have clicked on the paragraph.'); 
}); 

請參閱的工作示例。

我遇到的問題是,雖然我會設置.delegate()來捕獲我的段落中的所有點擊,但似乎無法捕捉文本節點上的點擊。

如何在文本節點上捕獲點擊事件.delegate()

+0

我不知道爲什麼你想要委託段落來監聽點擊文本節點。無論如何,在大多數情況下,文本包含元素(本例中爲'p')。通常委託給父級元素來監聽點擊「p」是更合適的方法。 –

+0

我想聽段落中的所有元素,而不僅僅是文本節點。 – Randomblue

+0

在這種情況下,您確實想聽點擊的是「p」;儘管有些方法可以讓p中的其他點擊優先(一個錨標記仍然應該是我相信的工作鏈接),那麼該p中的任何內容都會註冊爲點擊。請參閱下面示例中的修改後的代表團。 :-) –

回答

3

如果它真的是'p',你想聽點擊,這只是一個識別適當的祖先元素的問題。通常這是一個包裝div,但它可能是身體,如果需要的話:

$('#someElement').delegate('p', 'click', function() { 
// your click function 
})