-2

このスクリプトを使用して、一連の入力フィールドを追加します。それはうまく機能しますが、私の問題は、ページの中央にある追加するボタンをクリックするたびに、ページがページの上部にジャンプすることです。どうすればトップにジャンプするのを防ぐことができますか?申し訳ありませんが、追加スクリプトは次のとおりです。

var count = 0;
$(function(){
$('a#add_field').click(function(){
count += 1;

$('#activation').append(
             '<div id="features_remove" style="float:left; width: 11%; margin-left:115px;">'
            +'<label>features remove</label>'
            +'<select id="features_remove' + count + '" name=features_remove' + count + '" class="input-medium" >'
                +'<option value="" selected="&nbsp;" >&nbsp;</option>'
                +'<option value="MPP" >MPP</option>'
                +'<option value="50 Data" >50 Data</option>'
                +'<option value="Navigation" >Navigation</option>'
                +'<option value="Insurance" >Insurance</option>'
                +'<option value="Road Side Assistance" >Road Side Assistance</option>'
            +'</select>'  
            +'</div>'
             ); 
      });       
});

そして、はい、それはボタンです

 <a href="#" class="btn btn-mini btn-danger" id="add_field"><span>Add In-Store Activation</span></a>
4

3 に答える 3

5

コードが投稿されていないので、ボタンが次のようになっているためだと思います。

<a href="#" id='myButton'>Button Text</a>

これ#は、ページにそのアンカーにジャンプするように指示します。そして、そのアンカーは定義されていないので、一番上にジャンプします。

代わりにこれを試してください:

<a href="javascript:;" id='myButton'>Button Text</a>

または、JavaScriptコードで:

$("#myButton").click(function(e){
    e.preventDefault();
});
于 2012-11-14T20:39:40.847 に答える
3

いくつかのコードを投稿する必要がありますが、あなたが書いていることに基づいて、私はあなたの「ボタン」が実際には。とのリンクであると想定していますhref="#"

これでジャンプを停止するには、たとえば、IDを指定しますid="mybutton"。次に、次のjQueryが魔法を実行する必要があります。

$('#mybutton').on('click',function(e){
    if (e.preventDefault)
        e.preventDefault();
    else
        e.stop();
})
于 2012-11-14T20:40:26.827 に答える
1

フィールドを追加するために使用される「ボタン」は実際には<a href="#">リンクですか?

リンクのデフォルトの動作を防ぐために使用している可能性のあるハッシュが原因で、jQueryがページの先頭に移動している可能性があります。ただし、jQuery(またはそのプラグインの一部)は、ハッシュをインラインアンカーとして使用している可能性があります。つまり。href = "#listTop"は、ページ上のid = "listTop"要素を検索し、画面の上部をその要素の上部までスクロールします。href = "#"を使用すると、効果的に画面の上部にスクロールできます。

jQueryクリックイベントハンドラーからfalseを返すか、パラメーターeをイベントハンドラーに追加してe.preventDefault();を呼び出すことを忘れないでください。メソッド本体で。

 <a href="" class="addOne">add row</a>

$('addOne').click(function(e){
  e.preventDefault();
  // the rest of your logic
});

これは私が提供された情報であなたに与えることができる最高のショットです。あなたはあなた自身があなたの状況のいくつかのコードとより詳細な説明を提供することによって助けられるのを助けることができます。

于 2012-11-14T21:01:34.793 に答える