簡體   English   中英

簡單的Javascript無法正常工作

[英]Simple Javascript Doesn't Work Right

我使用http://www.barelyfitz.com/projects/tabber/上顯示的Tabber腳本來提供選項卡式頁面。 通常,它運行良好,我唯一的抱怨是,只有在內容完全加載后才顯示選項卡,然后屏幕會正確寫入自身內容,這時會有一個跳躍。 (有關我的意思的示例,請參見www.littlehotels.co.uk/spain/noves.php 。)

我認為解決方案將是隱藏包含所有此類選項卡式內容的div

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

然后用一個小的javascript函數將其顯示出來

<body onLoad="ShowTabber()">

JavaScript本身是

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

我的小功能似乎阻止了外部javascript(tabber.js)的工作,因為該頁面將所有選項卡的內容顯示為一行,而選項卡本身不在頂部。 這與我從頁面的刪除對外部腳本的引用的結果相同。

我究竟做錯了什么?

更多說明:當tabber.js文件丟失時,頁面將一個接一個的顯示所有選項卡的內容(如您所願)。 如上所述運行腳本具有完全相同的效果。 因此,我認為該腳本阻止了主要javascript的運行。

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

默認情況下選擇一個選項卡,然后在完成該選項卡加載后將顯示一條消息。

看這里

好吧,我用jQuery解決了問題(但有些),但現在又提出了另一個問題。

為了響應PSR,我更深入地研究了jQuery。 切換到.tabs()可能太復雜了,但是我確實使用jQuery在適當的時候隱藏並顯示了一些div。

我在tabber div的fron中放置了一條簡單的小行,以顯示“正在加載”消息。

<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> 

效果很好,但是其中兩個選項卡的內容都包含iframe,此腳本破壞了我在這些iframe上使用的autoResize腳本。 我將打開一個新問題,看是否有人對此有答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM