2013-02-09 79 views
0

考慮下面的代碼:如何獲得jQuery事件處理程序中的父節點?

<div id="div1"> 
    <input type="radio" class="a" /> 
    <input type="radio" class="b"/> 
    //.... 
    <input type="radio" class="n" /> 
</div> 
<div id="div2"> 
    <input type="radio" class="a" /> 
    <input type="radio" class="b"/> 
    //.... 
    <input type="radio" class="n" /> 
</div> 

現在我想委託事件處理程序綁定到這些單選按鈕,如下所示:

$("div").on("change","input",myHandler); 

function myHandler(e) 
{ 
    alert($(this).prop("class")); 
    alert($(e.currentTarget).prop("class")); // same results... 
} 

我的問題是:我如何參考DIV或獲得的股利標識 MyHandler的從功能(它不是通過使用:$(本),$(e.target)或$(e.currentTarget)),因此如何引用的DIV

回答

3

看看event.delegateTarget。它引用你附加處理程序的DOM元素。因此,要抓住它的id屬性:

function myHandler(e) { 
    alert(e.delegateTarget.id); 
} 

Fiddle

+0

tahnks,我不「知道我是多麼懷念它... – 2013-02-09 21:04:15

+0

沒有概率的,是的,這是一個有點隱藏在doc我首先通過檢查控制檯中的jQuery事件對象來看到它。 – 2013-02-09 21:10:07

1

jQuery有一個.parent()函數:http://api.jquery.com/parent/

內,您的事件處理程序:

$(this).parent()

+0

是對於非常簡單的HTML OP發佈的,但如果用元件,其往往是造型的情況下嵌套級別,事情變得更復雜此WIL工作。 – 2013-02-09 21:13:31