1

Баг перелистывания кнопками.

Добрый день, @admin .

Баг заключается в следующем - при наличии нескольких одинаковых спонсорских постов в ленте (у меня автоподгрузка, а не постраничный просмотр) и переходе к следующему посту с помощью горячей кнопки, происходит переход к первому спонсорскому посту, а не повторно подгруженному.


В итоге лента улетает вверх.


Шаги для повторения:

1. Включить подгрузку новостей.

2. Листать кнопками.

3. Дождаться повтора спонсорского поста

4. Попробовать перейти на него.

5. Вместо перелистывания к повтору происходит перелистывание на первый загруженный спонсорский пост.


ОС:Вин7х64

Браузер:chrome 53.0.2785.143 m

Дубликаты не найдены

0

Именно такого не было, но случай аналогичный

раскрыть ветку 4
0

Промахнулся с ответом

раскрыть ветку 3
0

Здравствуйте!

Такая проблема имеет место быть, когда Вы очень долго просматриваете ленту.

Спонсорский пост будет отображаться повторно только через 3 часа после первого просмотра. Таким образом, вероятно, у Вас была открыта страница более 3х часов?
Это достаточно редкий случай, однако все равно требует исправления, спасибо.

раскрыть ветку 2
0

Все бы юзеры так проблему описывали))

раскрыть ветку 3
0

Ну, это тут я юзер :)


Могу добавить, что ошибка в самой логике работы этого перелистывания - делать надо именно так как задумывали переход на +1 или -1 пост, а сделали хранение истории и переход к конкретному ID поста. (беглый взгляд на - http://cs.pikabu.ru/app/1.1.203/main/app.js)


В итоге проблема при наличии на странице двух постов с одинаковым ID.


Легко решаемая - нужно хранить отдельный массив со списком постов отображаемых на конкретной странице и реально делать переходы +/-1. При таком варианте одинаковые ID будут пофиг.


И сейчас лень тестировать, но подобная ошибка была/есть/может быть при комбинировании методов пролистывания - колесико, автоскролл на мышке, стрелки на клавиатуре, пробел, и хоткей. (бегло потестил - кажется починили)


$els.navigation={el:n,prev:n.find(".b-navigator__prev").click(function(){t.changeStory(t._prevId)}),next:n.find(".b-navigator__next").click(function(){t.changeStory(t._nextId)}),hide:n.find(".b-navigator__hide").click(i.bind(this.hideViewed,this))},this},attachCurrentMedia:function(){var t=!1,n=function(e){t=e};return e("../video").on("current",n),e("../gifx").on("current",n),w(document,["r"],function(){t&&i.isFunction(t.toggle)&&t.toggle()},{type:w.eEventType.keydown}),this},attachEvents:function(t){var n=this;return this._updateCurrentVoteStory=u.config("scrollMode")||t?function(e){var t=Number(r(e.currentTarget).data("story-id")||r(e.currentTarget).parent().parent().data("story-id"));!n._scrollingToPost&&t!==n._currentVoteId?n._setCurrentStoryVote(t):(n._currentMouseIn=!0,n.emit("current",t))}:function(){},this.$el.on("click",".story__rating-up",i.bind(this._clickRating,this,!0)),this.$el.on("click",".story__rating-down",i.bind(this._clickRating,this,!1)),this.$el.on("click",".story__rating-up-small",i.bind(this._clickRating,this,!0)),this.$el.on("click",".story__rating-down-small",i.bind(this._clickRating,this,!1)),this.$el.on("click",".story__save",i.bind(this._savePost,this)),this.$el.on("click",".b-story__show-all",i.bind(this._showAll,this)),this.$el.on("click",".story__share",function(e){return r(e.target).hide().next().show()}),this.$el.on("click",".story__share-button_type_fb",function(){e("../core/metrika").goal("facebook_sharing")}),this.$el.on("click",".story__share-button_type_vk",function(){e("../core/metrika").goal("vk_sharing")}),this.$el.on("click",".story__share-button_type_tw",function(){e("../core/metrika").goal("twitter_sharing")}),this.$el.on("click",".story__header",i.bind(this._clickExpand,this,!1)),this.$el.on("click",".story__rating-block",i.bind(this._clickExpand,this,!1)),this.$el.on("click",".story__toggle-button-scroll",i.bind(this._clickExpand,this,!0)),this.$el.on("click",".story__slide-up",i.bind(this._clickExpand,this,!0)),this.$el.on("click",".story__wrapper",function(e){var t=r(e.currentTarget);!t.data("visited")&&n._setVisited(Number(t.parents(".story").data("story-id")))})
this.$els={prev:this.$(".b-navigator__prev").click(i.bind(this.prev,this)),next:this.$(".b-navigator__next").click(i.bind(this.next,this)),hide:this.$(".b-navigator__hide").click(i.bind(this.hideVisited,this)),loading:r("#tw_loader"),container:r("#stories_container"),floatBanner:r("#floatya"),stories:r("tr.pg_click"),hiddenNews:r("#feed-panel-hidden-counter"),buttonReadAll:r(".b-button_read-all").click(function(){c("/ajax.php?act=readallcomms").then(function(){window.location.reload()})})},this.hideStories=Number(this.$els.hiddenNews.find("a > span").text()||0),this.$els.hiddenNewsSpan=this.$els.hiddenNews.find("span"),this.$els.hiddenNewsAnchor=this.$els.hiddenNews.find("a"),a.initParent(this.$el,{delay:1e3,position:"bottom",functionAfter:function(e){e.tooltipster("destroy").attr("title","")}}),this},scroll:function(e){return u.config("scrollMode")&&!this._scrollingToNews&&this.stories.setVisitedStoryShown(),e>80&&!this._shown&&this.show(),e<80&&this._shown&&this.hide(),u.config("twitMode")&&this.twitmodeLoad(),u.config("phpSelf")!=="story.php"&&(r(document).scrollTop()>2440&&r(document).height()-r(document).scrollTop()>1400?this.$els.floatBanner.css("position","fixed").css("bottom","1px"):this.$els.floatBanner.css("position","relative").css("bottom","0px")),this},next:function(e){var t=this;this.$els.next.hasClass("tooltipstered")&&this.$els.next.tooltipster("destroy").attr("title","");if(i.isBoolean(e)?e:!0)this.$els.next.addClass("b-navigator__next_active_yes"),setTimeout(function(){t.$els.next.removeClass("b-navigator__next_active_yes")},150);return this.scrollNews(this.idNext),this},prev:function(e){var t=this;this.$els.prev.hasClass("tooltipstered")&&this.$els.prev.tooltipster("destroy").attr("title","");if(i.isBoolean(e)?e:!0)this.$els.prev.addClass("b-navigator__prev_active_yes"),setTimeout(function(){t.$els.prev.removeClass("b-navigator__prev_active_yes")},150);return this.scrollNews(this.idPrev),this},currentTop:function(){return this.scrollToNews(this.idCurrent),this},changePage:function(e,t){var n=u.config("GET");return n.page=e?this.nextPage:this.prevPage>0?this.prevPage:1,n.page===this.currentPage?this:(t&&(n.scrollto=e?"first":"last")
раскрыть ветку 2
0
Вы приняты :)
0

Еще из твоего поста прекрасно понял в чем проблема, сам тоже в этой области работаю))

0

Вот такого случаем не было? http://imgur.com/nD8fvYV

Другой баг, но тоже с местами, где должны быть спонсорские посты.

раскрыть ветку 1
0

Именно такого не было, но случай аналогичный

Похожие посты
Похожие посты закончились. Возможно, вас заинтересуют другие посты по тегам: