2016-07-22 9 views
1
var main = function(){ 
    $('.btn').click(function() { 
    var post = $('.status-box').val(); 
    $('<li>').text(post).prependTo('.posts'); 
    $('.status-box').val(''); 
    $('.counter').text('140'); 
    $('.btn').addClass('disabled'); 
    }); 
    $('.status-box').keyup(function(){ 
    var postLength = $(this).val().length; 
    var charactersLeft = 140 - postLength; 
    $('.counter').text(charactersLeft); 
    if (charactersLeft < 0){ 
     $('.btn').addClass('disabled'); 
     } 
     else if (charactersLeft == 140){ 
     $('.btn').addClass('disabled'); 
     } 
     else { 
     $('.btn').removeClass('disabled'); 
     } 
    }); 
    $('.btn').addClass('disabled'); 
}; 

$(document).ready(main); 

なぜこのようなことが起こるのかについてのアイデアが投稿されるたびに、私は140文字の投稿を作成してリストに入れてページに表示するオプションを持つdivを持っています。私がこれらの投稿のうちの1つを作るたびに、ウェブページがトップに上がり、投稿を見るためにはスクロールダウンしなければなりません。投稿ごとにページが上がるのはなぜですか?

+1

に変更

$('.btn').click(function() { ... 

を起こってからそれを防ぐには? – Deep

+0

私はそれを使用しようとしました。私は実際にこれまでにそれを使用したhaventしかしここにそれはある。 – goldenwest

+0

https://jsfiddle.net/kv36jt98/ – goldenwest

答えて

5

ほとんどの場合、カスタムイベントロジックに加えて、デフォルトのフォーム提出またはリンク後の動作が実行されている可能性があります。おそらく#またはページの上部にある他のアンカーに移動している可能性があります。あなたがフィドルを提供することができ

$('.btn').click(function(event) { 
    event.preventDefault(); 
    ... 
+0

フォームが送信されると、ページがリロードされます。むしろ '.btn'はちょうどアンカータグです - まさにあなたの答えで推測する通りです。 –

+0

@NikolayErmakovターゲットが何であるかによって異なります。フォームが ''# "'に投稿された場​​合は、ページの先頭に移動します。私の推測はそれが何が起こっているのかです。 – Asaph

+0

)しかし、なぜフォームがあると思いますか) –

関連する問題