javascript - 仅在其中一个元素上禁用 onclick

标签 javascript jquery html wordpress

我有一个功能来显示我的 WordPress 搜索表单并隐藏它。问题是我希望所有容器都可以单击来显示/隐藏,但是当我单击搜索表单的文本输入时,它会隐藏它。单击输入时是否可以不触发 onclick 事件?

这是我的架构:

<li onclick="search_form(this)">
  <img src="#" >
  <div>
      <form role="search" id="searchform" method="get" action="/">
          <div>
              <input type="text" name="s" id="s" size="15" required="" placeholder="Search">
          </div>
      </form>
  </div>
</li>

我有类似的东西https://puu.sh/t3tiN/8655c07973.png (我的李的照片)

谢谢

编辑:有人向我询问该功能,但不想添加它,因为它只是 css :

function search_form() {
  if ($(window).width() > 1041) {
      var display = $('#mobile_search_form').css('display');
            if (display == "none") {
                  /* many css animate */

            } else if (display == "inline-block") {
                  /* many css animate */
            }
    }else if ($(window).width() < 1041) {
      window.location.href = "#"
      $(document).ready(function () {
        $('#result_number').css('display',"none");
      });
    }
}

最佳答案

看看stopPropagation() 。我认为这正是您想要做的:

<li id="myLi">
  <img src="#" >
  <div>
      <form role="search" id="searchform" method="get" action="/">
          <div>
              <input type="text" name="s" id="s" size="15" required="" placeholder="Search">
          </div>
      </form>
  </div>
</li>

Javascript:

$("#myLi").click(search_form($(this));
$("#s").click(function (e) {
    e.stopPropagation();
});

关于javascript - 仅在其中一个元素上禁用 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41360735/

相关文章:

html - 页脚太宽

javascript - 在窗口调整大小时引导更改按钮文本大小

jquery - 如何通过Grails中的Jquery仅更新所需的ID?

javascript - ReactJS 中的嵌套路由

c# - ASP.NET 在单击按钮时显示 div

javascript - 使用动态 HTML 页面在 JavaScript 中打开窗口

Jquery 如何在单击导航时停止刷新

html - 2013 年我应该使用 HTML5 编写我的网站吗?

javascript - 使用 JS 事件监听器选择一个分割

javascript - Bootstrap 3.1 CSS 连字符问题