Javascript 表可见时隐藏链接

Javascript 表可见时隐藏链接,javascript,jquery,html,Javascript,Jquery,Html,我有一个水平网站,当你点击底部的“更多”链接时,它会一直显示我的表格/图像(我的图像在表格中)。我正在尝试这样做,当我的最后一个图像/表格可见时,“更多”链接将消失。我对编码非常陌生,但我成功地编译了它,但它不起作用 我读到CSS总是能识别一个元素,只要它在页面中合适,它就是可见的,并且必须使用Javascript来检查它在页面上是否确实可见。任何解决方案都将不胜感激,谢谢 <script src="./lib/jquery.js" type="text/javascript">

我有一个水平网站,当你点击底部的“更多”链接时,它会一直显示我的表格/图像(我的图像在表格中)。我正在尝试这样做,当我的最后一个图像/表格可见时,“更多”链接将消失。我对编码非常陌生,但我成功地编译了它,但它不起作用

我读到CSS总是能识别一个元素,只要它在页面中合适,它就是可见的,并且必须使用Javascript来检查它在页面上是否确实可见。任何解决方案都将不胜感激,谢谢

<script src="./lib/jquery.js" type="text/javascript">
    function() {
        if($('#finaltable').is(':visible')){
            $('#morelink').remove(this);
        }
    }
</script>
<html>
    //There are about 20 tables but the last one is ID'd as 'final table'
    <table id="finaltable">
        <tr><td>Final Table</td></tr>
    </table>

函数(){
如果($('#finaltable')。是(':visible')){
$(“#morelink”)。删除(此);
}
}
//大约有20个表,但最后一个表ID为“最终表”
最终表格

参考
窗口。在
设置超时中滚动
,以确定是否接近页面底部:

您正在用JavaScript声明函数,但没有调用它。您可以编写以下代码

   /* Declare the function */
    var f = function() {
       if($('#finaltable').is(':visible')){
           $('#morelink').remove();
       }
    }

   /* Call the function */
   jQuery(document).ready(function () { 
      f(); 
   });

下面是代码的一部分

您不能使用jquery:visible,因为它只基于这样一个事实,即您的元素的CSS显示与none(以及其父元素)不同,并且其宽度和高度大于0

在您的情况下,我将使用offset属性。单击事件中的“更多”按钮,检查最终表格的位置

<a id="more" href="#">More></a>
<script>
    jQuery(document).ready(function () { 
      $("#more").on("click",function(e)
      {
        //finaltable display on screen
        if($("#finaltable").offset().left<=0)
        {
          $("#more").hide();
        }
      });
    });
</script>

jQuery(文档).ready(函数(){
$(“#更多”)。在(“单击”,功能(e)
{
//最终屏幕显示

如果($(“#finaltable”).offset().left最后一部分“f();”在右边之前?我把它全部放进去了,但它不起作用:(是的,f()在前面。你需要把标记放在html元素#finaltable和#morelink之后,使用document.ready()调用函数,我在我的问题中进行了编辑。你是说标记我的html表?对不起,你能告诉我它是什么样子吗?非常感谢。但它仍然不适用于我:(因此,我将尝试另一种解决方案。.我在JSFIDLE中添加了e demo链接。@Yoann在他的回答中有一个很好的观点:visible.Ok,只是为了确定。当您单击“更多”时,有多个表从右向左滚动,对吗?那么,当您单击“更多”时,显示的表n向右移动,表n+1从左移动?是的,当您单击“更多”时,新表将移到现有表的右侧。旧表保持不变,只有新显示的表才会移到右侧。不确定n+1是什么意思。好的,我将快速构建一个小提琴,希望我理解了工作流。查看一下,然后让我知道它符合你想要实现的目标?