日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

JQuery新版本的toggle()方法把元素隐藏了的原因分析及解决方案

發布時間:2023/11/21 综合教程 51 生活家
生活随笔 收集整理的這篇文章主要介紹了 JQuery新版本的toggle()方法把元素隐藏了的原因分析及解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在看《鋒利的jQuery》的時候,有講到toggle()方法,例子中說的是點擊元素,會再顯示和隱藏狀態進行切換,但是我按著例子謝了一遍,發現被綁定toggle()的元素直接被隱藏了,查詢發現是因為jquery1.9版本之后toggle()發生了變化。

  1. toggle()原本應該實現的功能

由上圖可以看到,不斷按下按鈕,頁面的顏色將會被不斷改變,然后重復循環。其循環的過程是根據函數的書寫順序,如下

$(document).ready(function(){
  $("button").toggle(function(){
    $("body").css("background-color","green");},
    function(){
    $("body").css("background-color","red");},
    function(){
    $("body").css("background-color","yellow");}
  );
});

2. toggle()現在使用發生的情況

如果現在采用最新的Jquery版本來書寫代碼,那么如果用到了toggle()這個函數,將會發現被綁定的那個元素如果本來是顯示的,那么將被隱藏,如果原本那個元素是隱藏的,將會被顯示。

3.原因

為什么會出現這種情況,原來在jQuery 1.9版本之后,toggle()發生了變化,以下是官網的Notes:

Note: This method signature was deprecated in jQuery 1.8 and removed in jQuery 1.9. jQuery also provides an animation methodnamed .toggle() that toggles the visibility of elements. Whether the animation or the event method is fired depends on the set of argumentspassed.

在早期的版本,存在兩個同名的toggle(),但是所執行的方法卻是不一樣的:
第一種:

.toggle( handler(eventObject), handler(eventObject) [, handler(eventObject) ] ) 

Description: Bind two or more handlers to the matched elements, to be executed on alternate clicks.

第二種:

.toggle( [duration ] [, complete ] ) 

Description: Display or hide the matched elements.

而之后的版本把第一個toggle()函數給去掉了,導致用于調用切換功能時會把元素隱藏了。

4. 現在新版本下的toggle()的功能實現

通過上圖W3C的實例可以看到,按下按鈕,<p>This is a paragraph.</p>里面的代碼將會消失,再按一次,代碼里面的內容將再次被顯示,再按下就是消失,如此循環重復。

5.?其他的實現顯示\隱藏切換的方法

$(".menu-title").click(function() {
    if ($(this).next().css('display') == 'block') {
        $(this).css("background-color", "#203263");
        $(this).next().slideUp();
    }else {
        $(".menu-title").css("background-color", "#203263");
        $(this).css("background-color", "#204494");
        $(".menu").slideUp();
        $(this).next().slideDown();
    }
});

通過$(this).next().css('display') == 'block'可以判斷某元素的顯示或者隱藏狀態,故實現這個功能。

總結

以上是生活随笔為你收集整理的JQuery新版本的toggle()方法把元素隐藏了的原因分析及解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。