首頁  >  文章  >  web前端  >  jquery not不起作用怎麼辦

jquery not不起作用怎麼辦

藏色散人
藏色散人原創
2020-12-30 10:05:241965瀏覽

jquery not不起作用的解決方法:先開啟不起作用的程式碼檔案;然後修改jquery程式碼為「$(document).not('#date').click(function(){. ..}」即可。

jquery not不起作用怎麼辦

本教學操作環境:Dell G3電腦、Windows7系統、HTML5&&CSS3&&jquery2.0.0版本。

推薦: 《css影片教學》《javascript基礎教學

#jquery中not方法失效的解決方案

篩選元素時,想從$(document)中直接去掉某一元素,使用$(document).not('#a')是無效的。

但要解決這類問題可以使用其它的方法,舉個例子

在模擬下拉列表時,想要實現的效果是點擊div,隱藏的列表出現,點擊任意的地方下拉列表消失

<div id="date">选择日期</div>
<div id="content" style="display:none;">
<ul>
  <li>2月1日</li>
</ul>
</div>

這個時候直接寫

$("#date").click(function(){
  $("#content").slideDown();
});
$(document).click(function(){
  $("#content").slideUp();
});

會出現點擊div時下拉清單先出現後消失的情況

解決這種問題大部分人最先想到的是

#在設定document的點擊事件是去掉元素#date,即

$(document).not(‘#date’).click(function(){
  $("#content").slideUp();
});

但not()在這裡並不生效

這時就需要換一種思路

#在點擊date的一瞬間content的高度變為1px,display變成block

所以

$(document).not(‘#date’).click(function(){
  if($("#content").css(&#39;display&#39;) == &#39;block&#39; && $("#content").css(&#39;height&#39;) != &#39;1px&#39;){
    $("#content").slideUp();
  }
});

就可以達到去掉元素#date的效果

另不想使用slideDown()的話

就必須透過增加一個變數記錄下拉清單的開閉狀態來達到相同的效果

總之其他的情況也可以透過類似的方式來解決題設的問題

更多程式相關知識,請造訪:程式設計教學!!

以上是jquery not不起作用怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn