我有这个脚本来附加一组输入字段。它工作正常,除了我的问题,每次我点击按钮添加在页面中间,页面跳转到页面的顶部。怎么能阻止它跳到顶端?对不起,这是追加脚本:
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=" " > </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>
答案 0 :(得分:5)
由于没有发布代码,我只是假设它是因为你的按钮看起来像这样:
<a href="#" id='myButton'>Button Text</a>
#
告诉页面跳转到该锚点。由于没有定义锚,它会跳到顶部。
请改为尝试:
<a href="javascript:;" id='myButton'>Button Text</a>
或在您的javascript代码中:
$("#myButton").click(function(e){
e.preventDefault();
});
答案 1 :(得分:3)
您应该发布一些代码,但根据您所写的内容,我假设您的“按钮”实际上是与href="#"
的链接。
为了停止跳转,请给它一个id,例如id="mybutton"
。然后,以下jQuery应该做的魔术:
$('#mybutton').on('click',function(e){
if (e.preventDefault)
e.preventDefault();
else
e.stop();
})
答案 2 :(得分: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
});
这是我能提供的最佳信息。您可以通过提供一些代码和更详细的情况描述来帮助自己获得帮助。