jQuery toggle() 方法與實例以及代替方法。


看《jQeury 權威指南》時看到這個toggle()方法。因為之前在慕課網學習接觸過。發現兩者講的有細微的不同

以隱藏/顯示目標元素效果為例,慕課網是這樣講解的

$("#clickId").toggle( 

function(){$('#divId').hide();}, //方法之間以逗號隔開

function(){$('#divId').show();} 

); 

點擊ID名為clickId的按鈕,第一次會執行第一個function來隱藏ID名為divId的塊。第二次點擊會顯示。第三次點擊再次執行隱藏,以此類推。

同樣一個功能,而《jQeury 權威指南》中是這樣講解用法的。

$("#clickId").click(function() {
   $("divId").toggle(); 
})

使用toggle()的無參數方法來

同樣的隱藏/顯示目標元素的效果,《jQuery 權威指南》的處理方式顯得更加簡潔。使用無參方法時,只有2種狀態。但是當需要切換2種以上的狀態時,就只能使用慕課網的方法了。下面講解toggle()方法可以實現多函數綁定

<body>
        
        <input id="btntest" type="button" value="點一下我" />
        <div>你好,請選擇佳麗</div>
        
        <script type="text/javascript">
            $(function(){
                $("#btntest").toggle(
                    function(){
                        $("div").html("1號范冰冰");
                    },function(){
                        $("div").html("2號李冰冰");
                    },function() {
                        $("div").html("3號楊冪");
                    },function() {
                        $("div").html("4號姚晨");
                    }
                    )
                })
     </script>
    </body>

以下是運行結果。可見toggle()方法可以綁定多個函數,使用相當靈活。  

 

 

toggle有3種調參的方法。上面講了第一種無參使用方法,下面是第二種

toggle(switch)

switch是布爾類型的  數值是true或者false (若使用布爾值。則無法使用第三種speed參數方法)

var intI = 0;
var blnA = intI > 1; //獲取邏輯值false;
$("img").toggle(blnA);

 此時的blnA值是false。所以他能將"img"圖片隱藏。

第三種是

$(selector).toggle(speed,callback)

speed是觸發事件后執行的事件,可能的值:

  • 毫秒 (比如 1000 也就是1秒)
  • "slow"(0.6秒)
  • "normal"(0.4秒)
  • "fast"(0.2秒) 

  在設置速度的情況下,元素從可見到隱藏的過程中,會逐漸地改變其高度、寬度、外邊距、內邊距和透明度。也就是動畫效果了

 

  callback是整個toggle()方法執行完之后觸發的事件,和上面的多函數綁定是不同的,一定要設置speed參數才能使用callback參數。

 

在1.8.2及之前的版本可以使用toggle,但在1.9版本之后就將其刪除了(挺好用的,不知道為什么刪除了=.=!)

那么就要用手動方式來代替他了,或者使用過渡版本的jQuery,下面是手動方式。

//使用toggle方法時
$('button').click(function(){$("img").toggle();}) //手動實現toggle()方法 $('button').click(function(){ if($("img").is(":hidden")){ $("img").show(); }else{ $("img").hide(); } })

 

部分數據參考w3school

http://www.w3school.com.cn/jquery/effect_toggle.asp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM