0

非常に奇妙な動作が見られます。2 つのアンカー タグがあり、どちらもデータ バインドされたクリック イベントがあり、どちらも 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