通过锚标记的单击功能停止滚动顶部

时间:2014-07-17 15:02:30

标签: jquery html anchor

我有一个锚标签,点击时似乎滚动到屏幕顶部。

我正在使用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) { ...

没有达到这一点......

更新

现在获取所有信息,尽管滚动仍然是一个问题。防止默认似乎没有任何区别。

2 个答案:

答案 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>

可行,因为您不太可能拥有名称为'!'的元素。在你的页面上。