【问题标题】:get current div visible in viewport获取当前 div 在视口中可见
【发布时间】:2014-09-26 10:00:13
【问题描述】:

我对 jQuery 相当陌生,我正在尝试实现无限滚动,因此我能够在到达页面末尾时立即触发对后端的 ajax 调用。我还想知道在视口中可见的当前 div 以便我也可以发出 ajax 调用。假设我有 6 个 div

<div id="test">
            Some content here
<div>
    <div id="test1">
        more content here
    </div>
    <div id="test2">
        more content here again
    </div>

如果我的光标在向上滚动时到达第 2 个 div,我想发出 ajax 调用,对于第 3 个 div 和第 1 个 div 也是如此。我在这方面太天真了,所以我可能会问一个愚蠢的问题,但请原谅我。

【问题讨论】:

  • 您不能将相同的 id 分配给多个 div。请编辑它
  • 使用class作为重复标识符,id是唯一标识符
  • 您可能想要查看预先存在的 JQuery 插件来完成这类事情。在我看来,简单地使用“x”静态 div 并不是实现无限滚动的明智方法;您可能希望在向下滚动时自动实例化带有内容的新 div。也许这种 JQuery 插件的功能与您想要的类似?:jscroll.com

标签: javascript jquery html ajax infinite-scroll


【解决方案1】:

试试这个

$("div").mouseover(function(){
    $id = $(this).attr("id"); //retrieve id, e.g. test, test1, test2, etc
    //if ajax call by switch case
    switch($id){
        case "test":
            //ajax code
            break;

        case "test1":
            //ajax code
            break;
    }
    //or directly ajax
    $.ajax({...});
    //or so on
});

希望对你有帮助

【讨论】:

  • 但是如果我的鼠标不在 divv 上怎么办?
  • 如果没有鼠标悬停,那么可以试试这个插件和下面的代码: plugin: github.com/teamdf/jquery-visible code: if ($('#element').visible(true)) { // 元素是visible, do something } else { // 元素不可见,做其他事情 }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多