javascript - 单击子项或单击子菜单时需要激活父类

标签 javascript jquery

我有包含在所有页面中的带有菜单的页眉。问题是当我单击子菜单时,我无法创建子菜单,并且它的父菜单突出显示或处于事件状态。

$(".dropdown .dropdown-menu li a").click(function() {
  $(".active").removeClass('active');
  $(this).closest('.dropdown').find('a:first').addClass("active");
  $(this).addClass("active");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="dropdown">
    <a class="dropdown-toggle" href="#" id="builders">Builders<i class="fa fa-caret-down" aria-hidden="true"></i></a>
    <ul class="dropdown-menu">
      <li><a href="gurgaon.php">Gurgaon</a></li>
      <li><a href="<?php echo base_url();?>all-india" class="active">All India</a></li>
      <li><a href="gurgaon-projects.php">Gurgaon Projects</a></li>
      <li><a href="<?php echo base_url();?>home/property_list">Property List</a></li>
    </ul>
  </li>
</ul>

最佳答案

您的 jQuery 代码可以运行,您只需要让它在加载时运行以及 click,您可以使用 trigger('click') 来实现:

var $a = $(".dropdown .dropdown-menu li a").click(function(e) {
  e.preventDefault(); // just for testing...
  $(".active").removeClass('active');
  $(this).closest('.dropdown').find('a:first').addClass("active");
  $(this).addClass("active");
});
$a.filter('.active').trigger('click');
.active {
  color: #C00;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="dropdown">
    <a class="dropdown-toggle" href="#" id="builders">Builders<i class="fa fa-caret-down" aria-hidden="true"></i></a>
    <ul class="dropdown-menu">
      <li><a href="gurgaon.php">Gurgaon</a></li>
      <li><a href="<?php echo base_url();?>all-india" class="active">All India</a></li>
      <li><a href="gurgaon-projects.php">Gurgaon Projects</a></li>
      <li><a href="<?php echo base_url();?>home/property_list">Property List</a></li>
    </ul>
  </li>
  <li class="dropdown">
    <a class="dropdown-toggle" href="#" id="builders">Builders<i class="fa fa-caret-down" aria-hidden="true"></i></a>
    <ul class="dropdown-menu">
      <li><a href="gurgaon.php">Gurgaon</a></li>
      <li><a href="<?php echo base_url();?>all-india">All India</a></li>
      <li><a href="gurgaon-projects.php">Gurgaon Projects</a></li>
      <li><a href="<?php echo base_url();?>home/property_list">Property List</a></li>
    </ul>
  </li>
</ul>

关于javascript - 单击子项或单击子菜单时需要激活父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222434/

相关文章:

javascript - 为什么不将 Javascript 事件委托(delegate)发挥到极致呢?

javascript - 如何使用 Node.js 中包含空格的 JSON 键获取 JSON 对象值

javascript - JSON中如何在JS中显示表中的所有数据

javascript - 选中单选按钮时立即在 block 中显示字形

javascript - 单击时更改按钮的值

javascript - 我如何确定哪些选项可用于 jQuery 的支持功能?

javascript - jQuery 对话框不调整 div 中内容的大小

javascript - 如何通过key访问json数组

jquery - 在CheckBoxListFor HTML Helper上执行JQuery验证

javascript - 有条件地显示 Aurelia 中下拉菜单的子菜单项