javascript - AJAX 导致跳转到顶部

标签 javascript jquery ruby-on-rails ajax post

我确实知道这是重复的,但我尝试放置e.preventDefault,但它仍然会跳转。

$(".a-result").click(function(e) {
    <some code....>

    $.post(result + "/fineart/show", {id: $artwork_id})
        .done(function(data){
            $rowBeginner.before(data);
    });

});

任何有关如何阻止 AJAX 导致跳转到顶部的帮助将不胜感激。

.a-result 顺便说一句,是 div 的集合。

编辑

<div id="results-panel">
    <% @artwork_q.each.with_index do |art, index| %>
        <div class="a-result" id="<%= index %>">
            <div class="a-result-photo">
                <%= image_tag art.photo.url(:small) %>
            </div>
            <div class="a-result-info">
                <%= art.artist.last_first if art.artist.present? %><br>
                <strong><%= art.title %></strong><span class="hidden_id"><%= art.id %></span><br>
            </div>
        </div>
    <% end %>
</div>

#results-panel 中,我循环浏览结果的 Rails 集合,然后在其中一个结果之间放置一个 AJAX div。

另外,我正在使用 jquery 的 offset()offset().top 函数,如果这与它有任何关系的话。我使用 offset() 函数来测试每个连续的 div 是否从顶部偏移相同的量,因此告诉我它们是否在同一行,因为我 float 了所有其中。如果这是造成的,是否有更好的方法来实现这一目标?

最佳答案

在调用Post请求之前,是否清除了html中已经显示的数据? 因为清除数据会导致 html 页面高度小于浏览器高度,从而导致滚动到顶部。并且您的 post 请求再次在 html 页面中填充数据,这让您感觉 post 请求导致页面滚动到顶部。

关于javascript - AJAX 导致跳转到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491274/

相关文章:

javascript - 对象成员的排序

JavaScript 语法 : inserting the value of a string into a statement

javascript - 在间隔中使用 jQuery Glow

javascript - Scrapy只抓取前两页

c# - 单击 asp 按钮获取下拉列表的值

jQuery UI Sortable - 更新项目 data-id 属性

javascript - 更改 "with"属性更改样式

ruby-on-rails - 如何优化 Rails 中的多态新闻提要?

ruby-on-rails - Ruby on Rails - 渲染和渲染操作之间的差异 :

ruby-on-rails - 如何使用 Ruby 在日历中显示事件?