2012-01-22 2 views
1

より良い練習のためのいくつかの批判や提案をしたいと思いますが、私はより効率的にトリミングしたり変更することができる方法上の任意の批判を探しています:jQueryのtoggle()関数です。私は私のコードは、私はそれにしたいと取り組んでいる

$('.toggle-comments').hide(); // this hides the results div when the page loads.     
$(".comments-toggle-click").click(function() {        
    $(".toggle-comments").slideToggle("slow"); 
    $(".comments-toggle-click").remove(); 
});    
+2

jqueryではなくCSSを介してコメントを非表示にします。 DOMをロードしてから隠すのを待っているよりもはるかに速く隠れているCSSが見つかりました。 – Scott

+0

'$("。comments-toggle-click ")。remove()' $(this).remove() 'と書くことができます。このアプローチは、複数の要素を実際に削除しない限り好ましい方法です。 – davidchambers

+0

CSSではなく、jqueryで非表示にすることをお勧めします。それ以外の場合は、js以外のユーザー/スクリーンリーダー、それ以外のコメントはまだ表示されます。 – Galaxy

答えて

2

ページの読み込みに$('.toggle-comments').hide();を呼び出す代わりに、なぜコメントをdisplay:none;で表示しないのですか?

1

CSS:

.toggle-comments { 
    display: none; 
} 

はJavaScript:

$('.comments-toggle-click').click(function() {        
    $('.toggle-comments').slideToggle('slow', function() { 
    $('.comments-toggle-click').remove() 
    }) 
}) 

トリックはあなたがアニメーションが完了するまで、リンクの削除を遅らせたい場合.slideToggleにコールバック関数を渡すことです。これはあなたの質問であなたが逃げている問題かもしれません。

関連する問題