[英]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.