Javascript 如何在列表中添加onclick函数,即<;li onclick=”一词&引用&燃气轮机&书信电报;按钮onclick="&引用&燃气轮机</按钮></李>;

Javascript 如何在列表中添加onclick函数,即<;li onclick=”一词&引用&燃气轮机&书信电报;按钮onclick="&引用&燃气轮机</按钮></李>;,javascript,jquery,html,css,onclick,Javascript,Jquery,Html,Css,Onclick,基本上,我想创建一个侧栏,其中将有许多联系人。 每个联系人都在一个列表中。 列表中有两个onclick函数。 在列表中,两个onclick函数是: 第一次单击-单击列表后,应打开另一个侧栏(我已经创建了它)。 第二次单击此单击位于内部,即单击此单击后,应打开一个新的聊天框(几乎完成)。 但在我的例子中,每当我点击侧边栏中的任何列表时,它都会同时显示侧边栏和聊天框。 我希望两个onclick函数分别工作 html代码: <ul class="list mat-ripple">

基本上,我想创建一个侧栏,其中将有许多联系人。 每个联系人都在一个列表中。 列表中有两个onclick函数。 在列表中,两个onclick函数是: 第一次单击-单击列表后,应打开另一个侧栏(我已经创建了它)。 第二次单击此单击位于
内部,即
  • 单击此单击后,应打开一个新的聊天框(几乎完成)。 但在我的例子中,每当我点击侧边栏中的任何列表时,它都会同时显示侧边栏和聊天框。 我希望两个onclick函数分别工作

    html代码:

    <ul class="list mat-ripple">      
      <li ><img src="img1.png"><span class="name"> abc</span> 
         <button class="btn-link" style="margin-left:65px;color:green;font-size:15px;"> 
            <b>   
              <i class="fa fa-comments" aria-hidden="true"> </i>
            </b>
         </button>
      </li>
      <li>
        <img src="img1.png"><span class="name"> abc</span> 
        <button id="clickme" style="margin-left:65px;color:green;font-size:15px;"> 
         <b>   
           <i class="fa fa-comments" aria-hidden="true"> </i>
    
           </b>
         </button>
      </li>
      <li onclick="toggle_div_fun('sectiontohide');">
        <img src="img1.png"><span class="name"> abc</span> 
        <button  onclick="showFrontLayer();" style="margin-left:65px;color:green;font-size:15px;"> 
           <b>   
            <i class="fa fa-comments" aria-hidden="true"> </i> 
            </b>
        </button>
       </li>      
      </b>
      </button>
      </li>
    
      <li onclick="toggle_div_fun('sectiontohide');">
         <img src="img1.png"><span class="name"> abc</span> 
         <button onclick="showFrontLayer();" style="margin-left:65px;color:green;font-size:15px;"> 
           <b>   
              <i class="fa fa-comments" aria-hidden="true"> </i>
           </b>
         </button>
      </li>
    
    </ul> 
    
    • abc
    • abc
    • abc
    • abc
    列表中的第一个oclick函数需要针对以下代码(需要使用onclick函数切换的第二个侧栏):

    联系人名单 萨钦先生

    萨钦先生

    萨钦先生

    萨钦先生

    第二次单击后,按钮内的功能针对以下代码(切换):

    
    

    javascript函数:

        <script>
            function showFrontLayer() {
            document.getElementById('bg_mask').style.visibility='visible';
            document.getElementById('frontlayer').style.visibility='visible';
             }
             function hideFrontLayer() {
              document.getElementById('bg_mask').style.visibility='hidden';
             document.getElementById('frontlayer').style.visibility='hidden';
    }
            </script>
    
    
    函数showFrontLayer(){
    document.getElementById('bg_mask').style.visibility='visible';
    document.getElementById('frontlayer').style.visibility='visible';
    }
    函数hideFrontLayer(){
    document.getElementById('bg_mask').style.visibility='hidden';
    document.getElementById('frontlayer').style.visibility='hidden';
    }
    
    是否有其他代码切换2个目标元素(边栏和聊天框)?
    这两项都应该在一个列表中完成,因为您已经用jQuery标记了它,所以我假设您有可用的jQuery

    您可以使用jQuery,
    $('button')附加单击事件。单击(function(){…})

    因此,您可能需要附加一个单击事件,该事件检查某些功能的状态,并根据这些功能执行不同的操作

    例如,您可以让它检查类“clicked”,如果它没有类“clicked”,则展开第二个侧栏并添加类“clicked”,如果它确实有类“clicked”,则执行希望它执行的第二个单击功能


    当然,根据所需行为的具体情况,您可能希望以与添加类“clicked”不同的方式检查和更改状态,但这只是一种方法。

    鉴于您已经用jQuery标记了它,我假设您有可用的jQuery

    您可以使用jQuery,
    $('button')附加单击事件。单击(function(){…})

    因此,您可能需要附加一个单击事件,该事件检查某些功能的状态,并根据这些功能执行不同的操作

    例如,您可以让它检查类“clicked”,如果它没有类“clicked”,则展开第二个侧栏并添加类“clicked”,如果它确实有类“clicked”,则执行希望它执行的第二个单击功能


    当然,根据所需行为的具体情况,您可能希望以与添加类“clicked”不同的方式检查和更改状态,但这只是一种方法。

    您可以像这样使用jquery简单地使用onclick事件

    $(document).ready(function(){
        $('button').click(function(){
            <!---Your Code-->
        });
    });
    
    $(文档).ready(函数(){
    $(“按钮”)。单击(函数(){
    });
    });
    
    您可以像这样使用jquery简单地使用onclick事件

    $(document).ready(function(){
        $('button').click(function(){
            <!---Your Code-->
        });
    });
    
    $(文档).ready(函数(){
    $(“按钮”)。单击(函数(){
    });
    });
    
    问题在于理解Javascript中的事件处理。您有一个包含单击事件的列表元素。此列表元素包含一个按钮,该按钮也有一个单击事件。这意味着,当您单击列表项时,会触发两个事件(这就是为什么您会看到两个div)。我认为可以通过在showFrontLayer和HideFrontLayer函数中使用event.stopPropagation()来解决这个问题,以防止事件目标冒泡到列表项

    function showFrontLayer(evt) {
       evt.stopPropagation();
       document.getElementById('bg_mask').style.visibility='visible';
       document.getElementById('frontlayer').style.visibility='visible';
    }
    function hideFrontLayer(evt) {
      evt.stopPropagation();
      document.getElementById('bg_mask').style.visibility='hidden';
      document.getElementById('frontlayer').style.visibility='hidden';
    }
    

    有关事件捕获和冒泡的更多信息,请参见:

    问题在于理解Javascript中的事件处理。您有一个包含单击事件的列表元素。此列表元素包含一个按钮,该按钮也有一个单击事件。这意味着,当您单击列表项时,会触发两个事件(这就是为什么您会看到两个div)。我认为可以通过在showFrontLayer和HideFrontLayer函数中使用event.stopPropagation()来解决这个问题,以防止事件目标冒泡到列表项

    function showFrontLayer(evt) {
       evt.stopPropagation();
       document.getElementById('bg_mask').style.visibility='visible';
       document.getElementById('frontlayer').style.visibility='visible';
    }
    function hideFrontLayer(evt) {
      evt.stopPropagation();
      document.getElementById('bg_mask').style.visibility='hidden';
      document.getElementById('frontlayer').style.visibility='hidden';
    }
    

    有关事件捕获和冒泡的更多信息,请参阅:

    我猜您需要的是:

    event.stopPropagation();
    
    这将防止事件从按钮(位于内部)传播到其父级

    $(“#内部”)。单击(事件=>{
    event.stopPropagation();
    $(“#其他”).toggle();
    });
    $(“#外部”)。单击(事件=>{
    控制台日志(“外部”);
    });
    
    #外部{
    背景颜色:蓝色;
    宽度:100px;
    高度:100px;
    填充顶部:50px;
    }
    #其他{
    背景色:红色;
    宽度:100px;
    高度:100px;
    颜色:白色;
    }
    
    切换可见性
    必须在单击按钮时切换此div
    
    我猜您需要的是:

    event.stopPropagation();
    
    这将防止事件从按钮(位于内部)传播到其父级

    $(“#内部”)。单击(事件=>{
    event.stopPropagation();