-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(或它的一些插件)可能使用哈希作为内联锚。IE。href="#listTop" 将在页面上查找 id="listTop" 元素并将屏幕顶部滚动到该元素的顶部。href="#" 会有效地将您滚动到屏幕顶部。

请记住从您的 jQuery click 事件处理程序中返回 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 回答