Функция jQuery .hide не работает - PullRequest
1 голос
/ 28 июня 2011

Ребята, надеюсь, вы поможете.

У меня есть очень простая функция скрытия jQuery, которая работала, но какое-то bugInTheRom произошло за ночь и больше не работает.Фактически я пытаюсь добавить предупреждение «Терпение», видимое во время загрузки SWF.

Вот мой звонок в разделе <head> ...

<script type="text/javascript" src="js/jquery-1.6.1.js"></script>
<script type="text/javascript">
function hidden() {
    $('.patience').hide();
};
window.onload=hidden;
</script>

и вот классвлияет на ...

<p class="patience">Please be patient, the interactive book below and the PDF links may take a while to fully load.</p>

и связанный с ним CSS ...

.patience {
    visibility: visible;
    background-color: #CCC;
    border: 1px solid #000;
    margin-right: 10px;
    margin-left: 10px;
}

Есть идеи, почему он не скрывается после загрузки всего SWF-файла?

Мое спасибо.R

Ответы [ 5 ]

3 голосов
/ 28 июня 2011

Если у вас возникли проблемы, я бы переключился на:

$(document).ready(function () {
    $(window).load(function () {
        $('.patience').hide();
    });
});

, что могло бы помочь все правильно инициализировать.

Я не уверен, что понимаю, как связан SWF... возможно, вы хотели сказать swf_elem.onload или что-то вместо window.onload?

1 голос
/ 28 июня 2011

Во-первых - window.onload - правильное место для установки этого обработчика - в отличие от $(document).ready() он будет ждать загрузки всех подкадров, изображений и т. Д.

Чего я не знаю, так этобудет ли window.onload также ожидать загрузки SWF-объекта.

Если не не ожидает SWF, то эффект будет в том, что ваш .patience div исчезнет слишком рано, так как остальная часть страницы будет полностью загружена.

Это действительно ждет, но ваш div вообще не исчезает, это говорит о том, что вы просто получилитривиальная ошибка где-то в вашем реальном JS-коде, которая препятствует вызову .hide().

Поскольку вы сказали, что div не исчезает, я бы предположил, что у вас возникла последняя проблема, и в этом случае несколько минут с отладчиком JS должны выявить (без каламбура) проблему.

1 голос
/ 28 июня 2011

С одной стороны, измените window.onload=hidden; на $(function(){hidden();});

Новый предложенный мною способ заключается в использовании версии document ready в jQuery, которая гарантирует, что элементы, на которые вы можете повлиять, загружены и могут бытьused.

Также я не вижу в вашем коде ничего, что связывает эту функцию hidden() с любой загрузкой SWF

См. Fiddle: http://jsfiddle.net/maniator/XX8ym/

0 голосов
/ 29 июня 2011

Моя глупая ошибка!

Ничего плохого в коде, который я вам показал, но я обнаружил, что я вызываю <script type="text/javascript" src="js/jquery-1.6.1.js"></script> в голове и только "js / jquery-1.6.1.min.js"скрипт существовал на моем сервере.

Чувствую себя глупо, но спасибо всем, кто внес свой вклад.

Cheers Rog

0 голосов
/ 28 июня 2011

Может быть, ваш jQuery не удалось загрузить. Кроме того, при использовании jQuery используйте jQuery $ .ready вместо window.onload, чтобы убедиться, что все в порядке, прежде чем пытаться что-либо делать!

...