jQuery if element是否在当前选项卡上

时间:2016-07-17 23:02:40

标签: javascript jquery html tabs

我正在使用tabs来分解包含许多输入字段的长格式。

我的表单有四个标签,并在标签表格下方预览用户选择。

在标签下方的预览中,我放置了一些图标,允许用户向上滚动到包含输入元素的选项卡上的输入元素。

当用户查看要向上滚动的正确选项卡时,此功能非常有用。例如,如果输入元素位于选项卡1上且用户正在查看选项卡1,则用户可以向上滚动回到选项卡1上的该元素。

但是,如果输入元素位于选项卡1上且用户正在查看选项卡2,则向上滚动不起作用。我假设这是因为元素在选项卡/表单上不可见(但元素确实存在)。

所以我创建了一个条件if / else语句来测试元素是否可以访问,但条件总是返回true。我无法弄清楚应该检查元素是否可以在选项卡上访问的条件。

我尝试了不同的条件,但都归结为真。

我希望有人有可行的建议。

这是我的代码:

function scrollUpSingleDocumentDetails(id){
    //if(!($("#"+id).length)){
    if($("#"+id).css('visibility') === 'hidden'){
        $('html,body').animate({scrollTop: $("#"+id).offset().top-50},'slow');
    } else {
        $('html,body').animate({scrollTop: $("#id_details_headline").offset().top-50},'slow');
    }
}

1 个答案:

答案 0 :(得分:2)

按照get the current tab in jQuery UI tabs

检查当前标签

使用标签的id来获取元素,假设它是“currenttab”,并在“inputId”中输入你的输入ID:

var tab=document.getElementById('currentTab');
var input = document.getElementById('inputId'); 

if (tab.contains(input)) 
{ 
  alert("input is visible")
}