問題
jQueryの.toggle()メソッドを使用してボタンがクリックされたときに2つの関数を切り替えようとしていますが、DOMの準備ができるとすぐにボタン自体が消えます。
コード
$(document).ready(function() {
$("#panel").css({"height": "0%", "bottom": "0"});
/*
var already_clicked = false;
$("button").on("click", function() {
if (already_clicked) {
$("#panel").animate({"height": "0%"}, 500);
already_clicked = false;
} else {
$("#panel").animate({"height": "100%"}, 500);
already_clicked = true;
}
});
*/
$("button").toggle(function() {
$("#panel").animate({"height": "100%"}, 500);
}, function() {
$("#panel").animate({"height": "0%"}, 500);
});
});
マークアップ
<body>
<div id="panel"></div>
<button>Click me</button>
</body>
注:コメントブロックの解決策は意図したとおりに機能しますが、.toggle()が機能しない理由がわかりません。