こんにちは私はプログラミングのjQueryに新しいと私は誰かが私のためにテストすることを愛するクイックコードスニペットがあります。jQuery:スライドトグル||コードへの最適化は?
私はそれがうまくいくと思っています。しかし、それを処理する最良の方法がわからないのです。
作業例:ここではhttp://jsfiddle.net/zWnLv/29/
//hide wrapper at document ready
$('#newsbox_content_wrapper').hide();
//toggle visiblility of newsbox and slide down to scroll window to newsbox
$('.newsbox_toggle').bind('click', function() {
//define speed for effect
var $speed = 400;
//check to see if the class 'open' exists then run
if ($('.newsbox_toggle').hasClass('open')) {
//scroll to the top of the newsbox
$('html, body').animate({scrollTop: $('#header_lower').offset().top}, $speed);
$('#newsbox_content_wrapper').slideDown($speed);
$('.newsbox_toggle').removeClass('open');
//delay HTML replacement to sync with animation
$('.newsbox_expand').delay($speed).queue(function(n) {
$(this).html('Click to Close News Feature.');
$(this).addClass('rotate');
n();
});
} else {
//scroll back to top of body
$('html, body').animate({ scrollTop: 0 }, $speed);
$('#newsbox_content_wrapper').slideUp($speed);
$('.newsbox_toggle').addClass('open');
//delay HTML replacement to sync with animation
$('.newsbox_expand').delay($speed).queue(function(n) {
$(this).html('Click to Read More.');
$(this).removeClass('rotate');
n();
});
}
});
ありがとうございました。私が言ったように、私はこれに新しいし、チェーンは私が達成したいと思うもののために最も適しているようです。これを正しく理解すれば '.slideUp'が完了した後' .html'が実行されます。 – mnelson7982
はい、あなたは正しいです。 '.slideUp'に渡す(匿名の)関数は、アニメーションが完了した後に実行されます。ほぼすべてのjQueryアニメーションメソッドはコールバックをサポートしています:) –
ありがとうございました。あなたはとても助けになりました! – mnelson7982