簡體   English   中英

僅禁用其中一個元素的onclick

[英]disable onclick only on one element inside

我具有顯示和隱藏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();
});

如果您不介意內聯腳本:

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

信用:我從如何使用嵌入式onclick屬性停止事件傳播中得到了答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM