0

我看到一些非常奇怪的行为。我有两个锚标签,都有数据绑定的点击事件,都发出 ajax 请求。在一种情况下,如果响应是一个数组,则单击将导致页面滚动到顶部。在另一种情况下,如果响应不是数组,则单击根本不会导致页面滚动。

这是我的2个案例

<a data-bind="click: click1">click 1</a>  # scrolls to top
<a data-bind="click: click2">click 2</a>  # does not scroll

# javascript
function ViewModel() {
  var self = this; 

  self.click1 = function(data, event) {
    $.ajax({
      url: "/movies",     // returns array of movies, scrolls to top
      dataType: 'json',
      success: function(data, status, xhr) {
        movie_list = JSON.parse(xhr.responseText);
        self.movies(movie_list);
      }
  }

  self.click2 = function(data, event) {
    $.ajax({
      url: "/movies/1",   // returns just one movie, does not scroll
      dataType: 'json',
      success: function(data, status, xhr) {
        movie_details = JSON.parse(xhr.responseText);
        self.movies(movie_details);
      }
  }
}

ko.applyBindings(new ViewModel());

知道如何阻止第一个案例导致页面滚动到顶部吗?

4

0 回答 0