Javascript 使用jquery在li标记的子ul中单击超链接标记时向body添加类

Javascript 使用jquery在li标记的子ul中单击超链接标记时向body添加类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想在单击链接时向主体添加一个类。当链接位于父ul中时,这很容易实现,但我的问题是,我想为父li的子ul中的链接实现这一点。每当我试图这样做,它没有效果。 我想做的事情如下所示: 脚本: $(文档).ready(函数(){ $(“ul.treeview菜单”)。查找(“a.links”)。单击(函数(){ $(“body”).addClass(“边栏折叠”); }); }); 提前谢谢。您有两个问题: 1-此行//});它已被注释,并阻止您的代码工作 2-当点击超链接时,它会

我想在单击链接时向主体添加一个类。当链接位于父ul中时,这很容易实现,但我的问题是,我想为父li的子ul中的链接实现这一点。每当我试图这样做,它没有效果。 我想做的事情如下所示: 脚本:


$(文档).ready(函数(){
$(“ul.treeview菜单”)。查找(“a.links”)。单击(函数(){
$(“body”).addClass(“边栏折叠”);
});
});
提前谢谢。

您有两个问题:

1-此行//});它已被注释,并阻止您的代码工作

2-当点击超链接时,它会刷新页面,因此您添加到以前html中的任何类都会被删除,这就是为什么您希望能够看到任何更改

试试这个:

 <script>
      $(document).ready(function () {
        $("ul.treeview-menu").find("a.links").click(function (e) {
        e.preventDefault()
            $("body").addClass("sidebar-collapse");
        });
      });
   </script>

 <ul class="sidebar-menu nav nav-list" id="dashboard-menu">
    <li class="treeview">
         <a rel="tooltip" data-placement="right" target="_self" href="">
             <span class="caption">Parent Link</span>
          </a>
          <ul class="treeview-menu">
               <li>
                     <a href="abc" target="_self" class="links">child link</a>
               </li>
          </ul>
    </li>
 <ul>

$(文档).ready(函数(){
$(“ul.treeview菜单”)。查找(“a.links”)。单击(函数(e){
e、 预防默认值()
$(“body”).addClass(“边栏折叠”);
});
});
尝试('单击',…)上的
,可能是加载页面后导航将动态生成,因此您必须使用委派事件绑定

  $(document).ready(function () {
    $(document).on('click','ul.treeview-menu a.links',function () {
        $("body").addClass("sidebar-collapse");
    });
  });



<ul class="sidebar-menu nav nav-list" id="dashboard-menu">
    <li class="treeview">
         <a rel="tooltip" data-placement="right" target="_self" href="">
             <span class="caption">Parent Link</span>
          </a>
          <ul class="treeview-menu">
               <li>
                     <a href="abc" target="_self" class="links">child link</a>
               </li>
          </ul>
    </li>
 <ul>
$(文档).ready(函数(){
$(文档).on('单击','ul.treeview-menu a.links',函数(){
$(“body”).addClass(“边栏折叠”);
});
});

那么问题出在哪里?只需使用此
$(“ul a.links”)。单击()
语法错误?第4行<代码>/})结束括号已注释?
$(“ul a.links”)。单击()
也可以工作代码中的问题是
href=“abc”
。把这个改成“#”或者这样,它应该像一个魔咒一样工作。感谢你接受我的答案,我很乐意帮助你。。。别忘了也放弃投票谢谢,你的回答解决了我的问题。感谢您的时间,请编辑更多信息。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。
  $(document).ready(function () {
    $(document).on('click','ul.treeview-menu a.links',function () {
        $("body").addClass("sidebar-collapse");
    });
  });



<ul class="sidebar-menu nav nav-list" id="dashboard-menu">
    <li class="treeview">
         <a rel="tooltip" data-placement="right" target="_self" href="">
             <span class="caption">Parent Link</span>
          </a>
          <ul class="treeview-menu">
               <li>
                     <a href="abc" target="_self" class="links">child link</a>
               </li>
          </ul>
    </li>
 <ul>
 $(document).ready(function () {
    $("ul.treeview-menu").find("a.links").click(function (e) {
    e.preventDefault()
        $("body").addClass("Enter your class name");
    });
  });