$(窗口).scroll没有触发

MrA*_*MrA 1 sharepoint jquery sharepoint-designer

我正在使用Sharepoint开发人员.在页面内我有自定义的JQuery代码,工作正常.但是当我添加$(窗口).scroll时它不会触发.

function TTNListScroll()
{
var bestaatDiv = document.getElementById("header-fixed");
if(bestaatDiv ==null){
    alert("mag maar 1 keer komen");
    var head = document.getElementsByTagName("thead");
    TTNmyTable = head[0].parentNode;
    TTNmyTable.id="table-1";
    var parent = TTNmyTable.parentNode;
    parent.removeChild(TTNmyTable);
    parent.appendChild(TTNmyTable);
    var newTable=document.createElement("table");
    newTable.id="header-fixed";
    parent.appendChild(newTable);

    var tableOffset = $("#table-1").offset().top;
    var $header = $("#table-1 > thead").clone();
    var $fixedHeader = $("#header-fixed").append($header);
    $(window).scroll(function() {
    alert('a');
    });
    alert($._data(window).events.scroll);
    alert($(window).height());
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数在document.ready中定义.我的目标是在向下滚动时冻结表头.

如果有人有任何想法,他们会很感激.

谢谢

Ale*_*lex 7

是否TTNListScroll被调用?你定义了这个函数,但是你似乎没有调用它,因此事件不会被绑定.

或者,尝试将scroll事件绑定到'html, body'而不是window,如下所示:

$('html, body').scroll(function() { ... });
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的是,您可以尝试直接绑定不同的滚动事件.jQuery应该照顾这个,但也许它不正确:

$('html, body').bind('DOMMouseScroll MouseScrollEvent MozMousePixelScroll wheel scroll', function() { your code });
Run Code Online (Sandbox Code Playgroud)


s-h*_*ter 6

我遇到了同样的问题,原因是与这个 css 存在冲突,一旦我删除了这个 css 中的溢出,它就起作用了。

html,body {
 height:100%;
 overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)