2013-03-18 3 views
0

Я использую скрипт tabber, показанный на http://www.barelyfitz.com/projects/tabber/, чтобы предоставить вкладку. Как правило, он работает хорошо, и моя единственная жалоба заключается в том, что вкладки не отображаются до тех пор, пока содержимое не будет полностью загружено, а затем произойдет скачок, когда экран будет записываться правильно. (См www.littlehotels.co.uk/spain/noves.php для примера того, что я имею в виду.)Простой Javascript не работает правильно

Я думал, что решение было бы, чтобы скрыть DIV, содержащий все вкладки содержания, как этого

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

, а затем открыть его с небольшим яваскриптом функцией, вызывается

<body onLoad="ShowTabber()"> 

сам браузер

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

Моя маленькая функция перестает работать с внешним javascript (tabber.js), потому что на странице отображается содержимое всех вкладок в строке, без самих вкладок вверху. Это тот же результат, что и удаление ссылки на внешний скрипт со страницы.

Что я делаю неправильно?

Дополнительные сведения: Когда файл tabber.js отсутствует, страница отображает содержимое всех вкладок один за другим (как и следовало ожидать). Выполнение сценария, как описано выше, имеет точно такой же эффект; поэтому я заключу, что скрипт блокирует запуск основного javascript.

+0

Вы используете .tabs() в jQuery – PSR

+0

Можете ли вы PLZ поставить еще несколько объяснений ... – Rubyist

+0

Я не использую jQuery. Честно говоря, я держусь подальше от этого, потому что я этого не понимаю. Возможно, пора учиться. Napster, я отредактирую OP, чтобы попытаться дать больше объяснений. – TrapezeArtist

ответ

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

По умолчанию выберите вкладку. После завершения загрузки этой вкладки она отобразит сообщение.

see here

0

Ну, я решил проблему (вроде) с JQuery, но теперь поднял еще одну проблему.

В ответ на PSR я углубился в jQuery. Было бы слишком сложно переходить на .tabs(), но я использовал jQuery для скрытия и отображения некоторых div в соответствующие моменты.

Я разместил простую маленькую линию в передней части div tabb, чтобы показать сообщение «Загрузка».

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

Это работает отлично, но пара вкладок имеет плавающие фреймы для их содержаний, и этот скрипт разрывает AUTORESIZE скрипт я использую на этих фреймах. Я открою новый вопрос, чтобы узнать, есть ли у кого-нибудь ответ на этот вопрос.

Смежные вопросы