2013-03-18 118 views
0

我使用http://www.barelyfitz.com/projects/tabber/上显示的标记脚本来提供选项卡式页面。一般来说,它运行良好,我唯一的抱怨是,直到内容完全加载后才显示选项卡,然后在屏幕自行正确写入时出现跳转。 (对于我的意思的例子见www.littlehotels.co.uk/spain/noves.php。)简单的Javascript无法正常工作

我认为解决办法是隐藏包含这样

<div class="tabber" id="tabber" style="display:none"> 

所有标签内容的DIV,然后用一个小的JavaScript功能展现它这由

<body onLoad="ShowTabber()"> 

Javascript本身堪称是

<script type="text/javascript"> 
function ShowTabber() { 
document.getElementById('tabber').style.display = "block"; 
} 
</script> 

我的小函数似乎停止了外部javascript(tabber.js)的工作,因为页面显示的是所有标签的内容,没有标签本身在顶部。这与我从页面中删除对外部脚本的引用的结果相同。

我在做什么错?

更多说明: 当tabber.js文件丢失时,页面会依次显示所有选项卡的内容(如您所期望的那样)。如上所述运行脚本具有完全相同的效果;因此我得出结论,该脚本阻止运行的主要JavaScript。

+0

你在jQuery中使用.tabs() – PSR 2013-03-18 12:32:41

+0

你可以把PLZ放在一些更多的解释... – Rubyist 2013-03-18 12:33:13

+0

我不使用jQuery。说实话,我远离它,因为我不明白它。也许是时候学习了。 Napster,我会编辑OP来尝试给出更多的解释。 – TrapezeArtist 2013-03-18 12:40:42

回答

0
'onLoad': function(argsObj) { 
    /* Display an alert only after tab */ 
    if (argsObj.tabber.id == 'tab') { 
     alert('Finished loading tab!'); 
    } 
    } 

默认情况下,选择一个tab.Then完成装载后,该选项卡会显示一条消息。

see here

0

嗯,我解决了这个问题(在某种程度上)与jQuery,但它现在已经提出了另一个问题。

为了回应PSR,我更深入地研究了jQuery。如果转换为.tabs()会太复杂,但我确实在适当的时候使用jQuery来隐藏和显示一些div。

我在tabber div中放置了一个简单的小行来显示“Loading”消息。

<div id="loading" align="center" style="position:relative;top:70px"><h6>Loading ...</h6></div> 

然后我把这个脚本放在jQuery行下的头部。

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $("#tabber").hide(); 
     $("#loading").hide(); 
     $("#loading").fadeIn(1000); 
    }); 
    $(window).load(function(){ 
     $("#loading").hide(); 
     $("#tabber").fadeIn(300); 
    }); 
function checkResize(id){ 
     var win=document.getElementById(id).contentWindow.document.body.scrollHeight; 
     alert(win); 
} 
</script> 

这工作正常,但一对夫妇的标签具有I帧为他们的内容,而这个剧本打破我对这些内部框架使用自动调整脚本。我会开一个新的问题,看看有没有人有答案。