2015-01-12 3 views
0

Как всегда слушать window.width() и загружать разные коды HTML на основе значений ширины? Я использую window.width() и replaceWith().Как загрузить другой HTML на основе window.width()?

Работает только при открытии страницы и не работает при изменении размера моего окна браузера.

Мой код внутри моего HTML файла:

var width; 
    $(window).resize(function() { 
     width = $(window).width(); 
     if (width < 768) { 
      $("#the_dropdown").replaceWith("<p>Less than 768</p>"); 
     } else { 
      $("#the_dropdown").replaceWith("<p> More than 768</p>"); 
     } 
    }); 
    $(window).trigger('resize'); 

Demo

Другой вопрос, делает replaceWith() подходит для ситуации, которая включает в себя длинные HTML коды (более 1 строки)?

Я уже сделал несколько наборов кодов HTML, основанных на определенной ширине окна, и я хочу поместить его в мой div #the_dropdown.

+1

Это возможно в CSS с '@ media' запросов: http://www.w3schools.com/cssref/css3_pr_mediaquery.asp – ceadreak

+0

Как отмечает ceadreak, вы должны использовать медиа-запросы или, возможно, что-то вроде Modernizr к обнаруживать и реагировать. –

+0

Это изменение CSS на основе ширины окна. Я уже об этом знаю. Я не меняю свой CSS. Я меняю свой HTML на основе определенной ширины окна. –

ответ

4

Ваш код не работает, потому что replaceWith() заменяет выбранный элемент. В вашем случае элемент с id #the_dropdown. Поэтому при следующем триггере этот элемент не найден и текст не написан.

Заменить replaceWith() на .html().

Demo

+1

Таким образом, OP должен просто называть '$ (" # the_dropdown "). Html ("

Меньше 768

")' –

+0

Спасибо Tyr. Работает! –