2014-06-14 54 views
1

我有以下值:如何在獲得嵌套在(「點擊」)捕捉

<div class='outer'> 
    outside these values 
    <div data-which-price="special"> 
     special price 
    </div> 
    <div data-which-price="regular"> 
     regular price 
    </div> 
    </div> 

我想捕捉的點擊外,但如果他們點擊一個數據,其價格之內,我我想抓住這一點。我不知道如何做到這一點。我有(bin在http://jsbin.com/capet/3/):

$('body').on('click','.outer', function(){ 
    var which_price_val=$(this).attr('data-which-price'); 
    console.log('here i am'); 
    if(which_price_val){ 
     console.log('price is: ' + which_price_val); 
    } 
}); 

但這不是這樣做的。任何想法如何做到這一點?

THX

+1

我認爲你可以使用''('body')。on('click','。outer, [data-which-price]',' –

+1

看看'e.target',其中'e'是處理程序的第一個參數 –

+1

'this'是'div.outer'元素,它沒有屬性 –

回答

1

了jQuery on方法的第二個參數允許一個逗號分隔的匹配元素的列表,以便

$('body').on('click','.outer, [data-which-price]', 

第二元素會給你你所需要的。

0

如果你在父div中應用事件,我也會應用到子div中,所以如果你點擊外部類或數據 - 價格相同的函數onClick將被調用。但是,如果你想調用單獨的函數來調用孩子點擊,你必須執行以下操作: -

$(document).ready(function(){ 
    $('body').on('click','.outer', function(e){ 
     console.log("clicked outer") 
    }); 
    }); 
    $(document).ready(function(){ 
    $('body').on('click','[data-which-price="regular"]', function(e){ 
    e.stopPropagation(); 
    console.log("clicked inner") 
    }); 
    }); 
+0

thx Indra,看着只是抓住更多的具體信息,如果它被點擊,似乎在其他sol'n工作。如果你覺得有什麼是我錯過的話。 – timpone