由于turbolinks,jQuery滚动正在处理它不应该工作的页面

时间:2017-01-03 01:45:49

标签: jquery turbolinks

'.pagination'

因此,这会创建一个类似Instagram的设置,我们首先隐藏button,如果用户没有启用j,则使用scroll,显示'#infinite-scrolling'。他们点击该按钮并获得下一页照片。然后我们使用$('.pagination .next_page a').attr('href')添加下一页。一切正常。

启用了turbolinks的问题,它适用于应用程序的完全不同的部分,尽管这些页面包含元素scroll。这些网页确实有 scroll,这似乎足以让turbolinks在这些网页上启用if(window.location.pathname == "/photos")功能!

我尝试将$(window).off('scroll')函数包装在<select asp-for="OrgId.Id" asp-items="@Model.Org" class="form-group"></select> 中,但这仍然无济于事。

编辑:我在其他页面/* Handle all CSS based on returned colors */ $('.product-bottom-info-container').each(function() { $(this).css({ borderTop: '3px solid rgb('+ lightestColor +')' }); }); 添加了一个脚本,这确实阻止了滚动在这些页面上工作,但是我会对更好的方法感兴趣

3 个答案:

答案 0 :(得分:0)

尝试一次..

要关闭滚动,请尝试以下操作:

var current = $(window).scrollTop();
$(window).scroll(function() {
    $(window).scrollTop(current);
});

重置:

$(window).off('scroll');

答案 1 :(得分:0)

无法取消滚动事件。但您可以通过取消这些互动事件来实现: 鼠标&amp;与滚动相关联的触摸滚动按钮

<强> For Demo Click Here....

// left: 37, up: 38, right: 39, down: 40,
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
var keys = {37: 1, 38: 1, 39: 1, 40: 1};

function preventDefault(e) {
  e = e || window.event;
  if (e.preventDefault)
      e.preventDefault();
  e.returnValue = false;  
}

function preventDefaultForScrollKeys(e) {
    if (keys[e.keyCode]) {
        preventDefault(e);
        return false;
    }
}

function disableScroll() {
  if (window.addEventListener) // older FF
      window.addEventListener('DOMMouseScroll', preventDefault, false);
  window.onwheel = preventDefault; // modern standard
  window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE
  window.ontouchmove  = preventDefault; // mobile
  document.onkeydown  = preventDefaultForScrollKeys;
}

function enableScroll() {
    if (window.removeEventListener)
        window.removeEventListener('DOMMouseScroll', preventDefault, false);
    window.onmousewheel = document.onmousewheel = null; 
    window.onwheel = null; 
    window.ontouchmove = null;  
    document.onkeydown = null;  
}

答案 2 :(得分:0)

我能够用if(!(window.location.pathname == "/photos")) {};的布尔值来解决这个问题,从而在离开页面时关闭我的滚动功能。