2013-04-14 4 views
0

Я работаю над одностраничным веб-сайтом с некоторыми div. Эти div содержат некоторый контент, например iframe. Этот контент является обратным текстом, если js/jquery недоступен. Теперь я хотел бы удалить часть содержимого этих div, как только они будут готовы, заменить его на некоторый динамически созданный контент.jQuery: удалять контейнеры, как только они загружаются

Пример: Разделитель, содержащий iframe для календаря Google. Этот iframe должен быть заменен сгенерированным контентом вызова $ .getJson того же самого календаря.

Как это сделать? Is

$('div#calendar').ready(function(){ 
    $('div#calendar').remove('iframe') 
}); 

достаточно рано? Где должен находиться тег script для jquery, на данный момент он находится в конце тела?

+0

«Где должен быть тег сценария для jquery, я прихожу к телу на данный момент?», Это последнее предложение делает ваш вопрос непонятным. Тег сценария для jQuery должен находиться в главном разделе. –

+0

Я также использую Bootstrap для компоновки, они рекомендуют загрузить jquery в конце, чтобы ускорить время загрузки страницы. Так оно и есть сейчас, но я не вижу проблемы в его изменении. – DaClown

+0

Это нехороший подход. Поскольку пользователи, вероятно, будут видеть содержимое только для экземпляра, прежде чем он будет удален/заменен. –

ответ

1

Вы можете использовать noscript для случаев, когда абсолютно нет JS.

<script src="url"></script> 
<noscript> 
    <!-- Your iFrame --> 
</noscript> 

Если вы хотите больше контроля, взглянуть на подход обнаружения признака с, например Modernizr.

Или посмотрите here на некоторые мысли об использовании или отсутствии использования тега noscript или альтернативных подходов. Наиболее предпочтительный подход, похоже, имеет блок display:none;, который затем устанавливается на display:block; на JS, и наоборот для страницы без JS.

1

Вы можете попробовать $('div#calendar').html(<new content>) в своем обратном вызове успеха для getJson.

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