Javascript 表可见时隐藏链接
我有一个水平网站,当你点击底部的“更多”链接时,它会一直显示我的表格/图像(我的图像在表格中)。我正在尝试这样做,当我的最后一个图像/表格可见时,“更多”链接将消失。我对编码非常陌生,但我成功地编译了它,但它不起作用 我读到CSS总是能识别一个元素,只要它在页面中合适,它就是可见的,并且必须使用Javascript来检查它在页面上是否确实可见。任何解决方案都将不胜感激,谢谢Javascript 表可见时隐藏链接,javascript,jquery,html,Javascript,Jquery,Html,我有一个水平网站,当你点击底部的“更多”链接时,它会一直显示我的表格/图像(我的图像在表格中)。我正在尝试这样做,当我的最后一个图像/表格可见时,“更多”链接将消失。我对编码非常陌生,但我成功地编译了它,但它不起作用 我读到CSS总是能识别一个元素,只要它在页面中合适,它就是可见的,并且必须使用Javascript来检查它在页面上是否确实可见。任何解决方案都将不胜感激,谢谢 <script src="./lib/jquery.js" type="text/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是什么意思。好的,我将快速构建一个小提琴,希望我理解了工作流。查看一下,然后让我知道它符合你想要实现的目标?