2014-06-15 38 views
0

我有這個jquery,我已經設法讓它工作(我不是很擅長jQuery)。但我無法在v1.11.0中使用它。這將在v1.8.3中運行。當我切換版本時,clickme按鈕似乎被吞噬了。 這裏是小提琴鏈接 http://jsfiddle.net/meD7b/782/問題jquery工作在舊版本,但不是更新

這是你將能夠看到它,而無需看小提琴的人的代碼。 JQUERY

$("#dropbuttons").css({"top": "0px"}); 
$("#drop_button").toggle(function() { 
    $("#dropbuttons").animate({"top": "+115px"}, "slow"); 
}, 
function() { 
    $("#dropbuttons").animate({"top": "0px"}, "slow"); 
}); 

我試着尋遍找出爲什麼是這樣的話,但我一直沒能弄明白。 有人可以幫我把這個工作在1.11.0版本嗎?

+1

爲什麼不使用v1.8.3? – rikAtee

+0

切換在v1.11.0中不起作用 –

+1

'.toggle()'在1.8中被棄用爲事件並在1.9中被刪除http://api.jquery.com/toggle-event/ –

回答

2

Toggle Event

這種方法簽名的jQuery 1.8已被廢棄,並在jQuery的1.9去除 。 jQuery還提供了一個名爲 .toggle()的動畫方法,用於切換元素的可見性。 動畫或事件方法是否被觸發取決於通過的參數 的設置。

目前toggle()是由提供的jQuery動畫方法。


Updated Fiddle

$("#div2").css({"top": "0px"}); 
$("#clickme").click(function() { 
    if ($('#div2').css('top') !== '115px') { 
     $("#div2").animate({"top": "+115px"}, "slow"); 
    } else { 
     $("#div2").animate({"top": "0px"}, "slow"); 
    } 
}); 
+1

這很好用,並解釋了爲什麼當我檢查jslint中的代碼時,jshint沒有發現任何錯誤。它也解釋了當我查看切換命令是否仍然存在時,我發現它..我只是沒有看到它改變了它的功能。非常感謝你的幫助。 – user3452747

+0

是的在這種情況下有時令人困惑。很高興幫助 –

1

因此,作爲.toggle()事件在1.8棄用,你想用.on而不是處理click使用1.11+你可以做同樣的事情到this jsFiddle example

事件。

$("#clickme").on('click', function(event) { 
    var toggle = $("#div2"), 
     animation = { top : "+115px" }; 

    if (toggle.css('top') !== "0px") 
     animation.top = "0px"; 

    toggle.animate(animation, "slow"); 
}); 

本示例沒有任何檢查以查看動畫是否正在進行中,您可能希望在使用它之前添加該動畫。

如果您希望而不是有條件的css檢查,您還可以使用.toggle動畫。

+0

這是一個很好的答案,並且工作,但是我更喜歡上述答案。謝謝大衛。 – user3452747

相關問題