代码之家  ›  专栏  ›  技术社区  ›  dev-masih Ash Ghal

如何防止在另一个按钮上使用js调用onclick时关闭下拉菜单

  •  0
  • dev-masih Ash Ghal  · 技术社区  · 7 年前

    我有一个简单的下拉菜单和一个在页面中提交ajax表单和js函数调用的按钮 onclick 该按钮在循环中的功能,有一定的延迟(每10秒 单击


    那么,当调用onclick按钮时,如何防止这种行为呢?或者有没有更好的方法在循环中延迟提交ajax表单?


    代码是大项目的一部分,但为了更好地理解,你可以考虑这样的事情:

    <div class="container">
       <div class="dropdown">
          <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
       <span class="caret"></span></button>
       <ul class="dropdown-menu">
          <li><a href="#">HTML</a></li>
          <li><a href="#">CSS</a></li>
          <li><a href="#">JavaScript</a></li>
        </ul>
      </div>
    
    <form action="/navigationbar/_submitpush" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#pushwindow" id="form3" method="post">
        <button id="pushsubmitButton" type="submit" style="display:none">realSubmitButton</button>
        <script type="text/javascript">
            function checkingPush() {
                //Doing something
                setTimeout(goingToLoop, 5000);
            }
            function goingToLoop() {
                document.getElementById('pushsubmitButton').click();
            }
            checkingPush();
        </script>
    </form>
    </div>  
    

    goingToLoop 电话和那个电话 单击 的功能 pushsubmitButton 按钮和下拉菜单关闭

    您可以使用浏览器的开发控制台(打开下拉菜单,执行 document.getElementById('pushsubmitButton').click() 在控制台和菜单中,即使按钮放置在窗体外部且不执行任何操作,也会关闭)

    1 回复  |  直到 7 年前
        1
  •  0
  •   jsadev.net    7 年前

    问题是,引导下拉列表是使用css构建的,并且在 :focus :焦点

    您可以将下拉列表更改为JavaScript解决方案,或者在单击pushsubmitButton之后模拟单击下拉按钮。