最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to make particular Li tag active on click on anchor tag inside of that li tag? - Stack Overflow

programmeradmin1浏览0评论

I want to make my Li tag active when particular anchor tag inside li tag is clicked.

This is my Code:

<ul class="list-unstyled detail-sidemenu mrb15">
    <li>
        <a onclick="Display1()" href="#"><span class="glyphicon glyphicon-link"></span> ABC</a>
    </li>
    <li>
        <a href="#" onclick="Display2()"><span class="glyphicon glyphicon-link"></span>PQR</a>
    </li>
</ul>

.detail-sidemenu li a:hover {
    background-color: #ed1b23;
    color: #ffffff;
}

Now i want to apply this hover class css on Li tag:

 function Display1()
    {
        //active ABC
    }

 function Display2()
    {
         //Active PQR and remove active from ABC
    }

I want to make my Li tag active when particular anchor tag inside li tag is clicked.

This is my Code:

<ul class="list-unstyled detail-sidemenu mrb15">
    <li>
        <a onclick="Display1()" href="#"><span class="glyphicon glyphicon-link"></span> ABC</a>
    </li>
    <li>
        <a href="#" onclick="Display2()"><span class="glyphicon glyphicon-link"></span>PQR</a>
    </li>
</ul>

.detail-sidemenu li a:hover {
    background-color: #ed1b23;
    color: #ffffff;
}

Now i want to apply this hover class css on Li tag:

 function Display1()
    {
        //active ABC
    }

 function Display2()
    {
         //Active PQR and remove active from ABC
    }
Share Improve this question edited Oct 12, 2015 at 7:36 Sim 3,3171 gold badge19 silver badges23 bronze badges asked Oct 12, 2015 at 6:37 I Love StackoverflowI Love Stackoverflow 6,86822 gold badges114 silver badges238 bronze badges 3
  • 1 Try $('ul').on('click', 'a', function () { $('.active').removeClass('active'); $(this).closest('a').addClass('active'); return false; }); Check Demo – Tushar Commented Oct 12, 2015 at 6:40
  • @Tushar:Sorry but i cant change my function. – I Love Stackoverflow Commented Oct 12, 2015 at 6:44
  • 3 Then repeat the code. function Display1(e) { $('.active').removeClass('active'); $(e).closest('a').addClass('active'); return false; } function Display2(e) { $('.active').removeClass('active'); $(e).closest('a').addClass('active'); return false; } Check Demo – Tushar Commented Oct 12, 2015 at 6:46
Add a ment  | 

2 Answers 2

Reset to default 4

Add an click event handler to your anchor instead of writing inline function as below:

$('.ach').on('click', function() {
  $('li').removeClass('active');
  $(this).closest('li').addClass('active');
});
.detail-sidemenu li a:hover {
  background-color: #ed1b23;
  color: #ffffff;
}
.active {
  color: red;
  background-color: black;
}
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list-unstyled detail-sidemenu mrb15">
  <li><a href="#" class="ach"><span class="glyphicon glyphicon-link"></span> ABC</a>
  </li>
  <li><a href="#" class="ach"><span class="glyphicon glyphicon-link"></span>PQR</a>
  </li>
</ul>


Update

function Display1(ctrl) {
  $('li').removeClass('active');
  $(ctrl).closest('li').addClass('active')
}

function Display2(ctrl) {
  $('li').removeClass('active');
  $(ctrl).closest('li').addClass('active')
}
.detail-sidemenu li a:hover {
  background-color: #ed1b23;
  color: #ffffff;
}
.active {
  color: red;
  background-color: black;
}
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list-unstyled detail-sidemenu mrb15">
  <li><a href="#" onclick="Display1(this)"><span class="glyphicon glyphicon-link"></span> ABC</a>
  </li>
  <li><a href="#" onclick="Display2(this)"><span class="glyphicon glyphicon-link"></span>PQR</a>
  </li>
</ul>

Pass the control clicked to your function and access it in function accordingly

To make particular <li> tag active or inactive refer this answer on stackoverflow.

Answer

发布评论

评论列表(0)

  1. 暂无评论