我有一个锚标签,点击时似乎滚动到屏幕顶部。
我正在使用onclick并将模型属性发送到该函数。
如何防止滚动到顶部。
我尝试输入 href作为javascript:void(0); 并尝试返回false 。
<a href="javascript:void(0);" onclick="GetUsers('@(user.Code)');"><img ... /></a>
function GetUsers(Code) {
$.ajax({
...
});
}
更新
尝试调试它并且它没有到达此行。
var user = $(this).data('user-code');
页面上也没有错误。
$.ajax({
type: "GET",
url: "/Admin/GetUsers/",
data: { "User": user},
success: function (data, textStatus) { ...
没有达到这一点......
更新
现在获取所有信息,尽管滚动仍然是一个问题。防止默认似乎没有任何区别。
答案 0 :(得分:2)
要执行此操作,您需要停止按钮的默认操作。首先,使用jQuery来附加您的事件而不是过时的on
属性:
<a href="#" class="myLink" data-user-code="@(user.Code)"><img /></a>
然后在您的jQuery事件处理程序中,您可以对传递的事件使用preventDefault
:
$('.myLink').click(function(e) {
e.preventDefault();
var user = $(this).data('user-code');
$.ajax({
// ajax settings...
});
});
我在元素上使用data
属性来保存我猜测在AJAX调用中需要的参数。
答案 1 :(得分:1)
在不添加javascript的情况下停止滚动的方法是将href设置为具有不在页面上的ID的锚点,例如 -
<a href="#!" onclick="GetUsers('@(user.Code)');"><img ... /></a>
可行,因为您不太可能拥有名称为'!'的元素。在你的页面上。