2012-05-11 95 views
1

有兩個部分div部分具有相同的類,也有相同的ul和li和a。我有jquery點擊事件。當點擊鏈接時,兩個jquery點擊事件都被觸發。但我不想要兩個人,只有一個人被解僱。我如何做到這一點。這是我擁有的dom結構。區分相同的類名

<div class = "a"> 
<ul> 
<li><a href="www.google.com">google</a></li></ul></div> 

<div class ="a"> 
<ul> 
<li><a href="www.yahoo.com>yahoo</a></li></ul></div> 

href可能會改變,所以我不能根據我的選擇器。

感謝

+1

你可以給他們不同的ID? – jimw

+0

@jimw不需要。投注$ 1這是事件聽衆如何獲得附加。請向我們展示您的JS代碼。 – Madbreaks

+0

你可能是對的,你肯定是正確的顯示代碼。 – jimw

回答

3

只有一個是被解僱,你只是錯過演繹發生了什麼。試試這個:

$("div.a a").click(function(e){ 
    e.preventDefault(); 
    alert(this.href); 
}); 

發佈您的代碼,我們可能會幫助您解決它。

0

您可以使用first()方法來觸發第一個和最後一個()來觸發最後一個。除此之外,您可能需要實現唯一的ID或申請其他類:

http://api.jquery.com/first-selector/ 

http://api.jquery.com/last-selector/ 

使用另一個類:

<div class = "a google"> 
<ul>  
<li><a href="www.google.com">google</a></li></ul></div> 

<div class ="a yahoo"> 
<ul> 
<li><a href="www.yahoo.com>yahoo</a></li></ul></div> 
0

您可以定位一個用正確的href屬性:

$('a[href^="wwww.google"]').on('click', function(e) { 
    e.preventDefault(); 
    alert('This is not the Google you are looking for...'); 
}); 

如果href發生變化,您無法區分它們,結構中沒有ID,類或差異,因此唯一的選擇是檢查它們在DOM中的索引:

$('.a > ul > li > a').on('click', function(e) { 
    e.preventDefault(); 
    var A = $(this).closest('.a').index(); 
    if (A==3) { 
     alert("this is the one I'm lookin for"); 
    } 
}); 
0

你可以試試這個

$(function(){ $('.a').click(function(){ var a = $(this).val(); alert(a); }); }); 
相關問題