2013-06-28 38 views
0

我建立了它具有以下排序标记的导航栏中选择一个元素的父:选择具有一定的阶级

<ul class="nav"> 
    <li class="active"><a href="blah.html">S</a></li> 
    <li><a href="blah1.html">S1</a></li> 
    <li><a href="blah2.html">S2</a></li> 
    <li><a href="blah3.html">S3</a></li> 
</ul> 

在一个我的活动在这里,我对访问a元素用户点击的。

$('.nav').on('click', 'li a', function(){ 
var clickedLink = $(this); 
var prevActiveLI = ? 
var currentClickedAnchorsParentLI = ? 
}); 

有两件事我想在这里为我的目的。前一个li标记有active类应用,其次li标记为a刚刚被点击。如何访问?

回答

1

试试这个:

$('.nav').on('click', 'li a', function(){ 
    var clickedLink = $(this); 
    var prevActiveLI = $('.active', $clickedLink.closest('.nav')); 
    var currentClickedAnchorsParentLI = $clickedLink.closest('li'); 
}); 
1
$('.nav').on('click', 'li a', function(){ 
    var clickedLink = $(this); 
    var prevActiveLI = clickedLink.closest('ul.nav').find('li.active'); 
    var currentClickedAnchorsParentLI = clickedLink.parent(); 
}); 
1
var $prevLi, 
$currentLi 
; 

$('.nav').on('click', 'li a', function(){ 
var clickedLink = $(this); 
if($currentLi) { 
    $prevLi = $currentLi; 
} 
$currentLi = clickedLink.parent(); 
}); 
0
$('.nav').on('click', 'li a', function(){ 
    var clickedLink = $(this); 

    var currentClickedAnchorsParentLI = clickedLink.parent(); 

    if(!currentClickedAnchorsParentLI.hasClass("active")) 
    var prevActiveLI = currentClickedAnchorsParentLI.siblings(".active").first(); 
    //else 
    // 
});