一個實例中使用到toggle函數,可是調用的時候會把元素隱藏掉,經搜索終於找到了緣由,須要的朋友能夠參考下web
最近編寫一個實例的時候使用到toggle函數,可是調用的時候會把元素隱藏掉,以前使用過也只是多個事件輪流切換罷了。百思不得其解因而就在網上搜索查看jQuery API文檔。終於發現了緣由:
原來在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()函數給去掉了,致使用於調用切換功能時會把元素隱藏了。
========================
既然去掉了這個函數,可是實現需求仍是要的。怎麼來實現多個事件的輪流切換了?
能夠經過click事件判斷不一樣的狀況來觸發,或者經過設置一個變量計數點擊次數來執行不一樣的函數。ide
var num=0; $('#button').click(function(e){ if(num++ %2 == 0){ //doSomething }else{ //doOtherSomething } e.preventDefault(); //阻止元素的默認動做(若是存在) });