非常に奇妙な動作が見られます。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());
最初のケースでページが一番上にスクロールするのを止める方法はありますか?