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那怎么能访问呢?

4

4 回答 4

1
$('.nav').on('click', 'li a', function(){
  var clickedLink = $(this);
  var prevActiveLI = clickedLink.closest('ul.nav').find('li.active');
  var currentClickedAnchorsParentLI = clickedLink.parent();
});
于 2013-06-28T05:28:49.177 回答
1

尝试这个:

$('.nav').on('click', 'li a', function(){
    var clickedLink = $(this);
    var prevActiveLI = $('.active', $clickedLink.closest('.nav'));
    var currentClickedAnchorsParentLI = $clickedLink.closest('li');
});
于 2013-06-28T05:30:20.847 回答
1
var $prevLi,
$currentLi
;

$('.nav').on('click', 'li a', function(){
 var clickedLink = $(this);
 if($currentLi) {
  $prevLi = $currentLi;
 }
 $currentLi = clickedLink.parent();
});
于 2013-06-28T05:30:46.170 回答
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
    //
});
于 2013-06-28T05:33:41.100 回答