jquery - wcf 服务被调用两次

标签 jquery html css wcf knockout.js

我在我的 html 表格上使用无限滚动。这是我用来无限滚动的代码

$('#divTable').bind('scroll', function () {
        if ($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) {
            currentPageNo = currentPageNo + 1;
            myservice(id, pageSize, currentPageNo);


        }
    });

当页面加载时,它会用 100 条记录填充我的表格,因为我将 pagesize 传递为 100。当我在表格底部向下滚动时,它会调用此代码 myservice(id, pageSize, currentPageNo); 两次。我不明白为什么它会调用两次。

这是我的html

<div id="divTable" style="height: 535px;overflow-y: auto;overflow-x: hidden">
                    <table>
                        <tbody data-bind="foreach: myData">

                            <tr >

                                <td style="padding: 8px;width: 50px;" data-bind="text: Id "></td>

                            </tr>

                        </tbody>
                    </table>

                </div>

最佳答案

当我试图劫持滚动事件并使用它允许我的用户一次前进一页时,我遇到了类似的问题。在触控板上,您可以使用我所说的“intertial scrolling”,这会导致您的事件处理程序触发太多次。

您需要能够识别惯性滚动,并且仅当滚动不是惯性滚动时才运行您的事件处理程序。

这是一个代码片段:

var event = normalizeEvent(event);
  if(event.timeStamp - smartScroll.timeStamp < 50){

    smartScroll.inertia = true;
  }else{

    smartScroll.inertia = false;
  }

根据 smartScroll.inertia 的值,您可以确定事件处理程序是否应该使用react。

你可以在这里挑选出完整的代码,虽然这里有很多不属于你的情况: http://www.oliverpetkovski.com/javascript/main.js

关于jquery - wcf 服务被调用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26810559/

相关文章:

javascript - 选择 li 元素内的文本,而不是 childs?

jQuery UI - 在 DOM 中移动可放置元素

html - 木炭/模拟像使用 CSS3 的边框效果

javascript - 将溢出的 div 平滑地滚动到其中的特定位置

javascript - 这个 DIV 背景图像分配有什么问题?

html - 在可滚动内容上绝对 div 跟随

c# - BundleConfig 正在捆绑我的 CSS 文件的旧版本

jquery - 在 IE 中拖动时弹出标题摇晃

javascript - 如何使用 JS 获取不同的值并对 JSON 的总数求和

javascript - 转到 anchor 并使用 JQuery 或 Javascript 滚动