Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как вызывать jQuery виджет только в определенном разрешении? (https://javascript.ru/forum/jquery/79081-kak-vyzyvat-jquery-vidzhet-tolko-v-opredelennom-razreshenii.html)

VasyOK 14.12.2019 14:59

Как вызывать jQuery виджет только в определенном разрешении?
 
Допустим есть jQuery виджет https://jqueryui.com/tabs/
И нужно, чтобы вкладки были только на экранах с шириной менее 600рх. А на больших экранах чтобы виджет не обрабатывал HTML. Т.е. display: none - не подходит.

Написал такой вот код:

function tabs_behavior() {
   if ($(window).width() < 600) {
   	$("#tabs").tabs();     
   } else {
        $("#tabs").tabs("destroy");  
   }
}

tabs_behavior();

$(window).resize(function() {
	tabs_behavior();            
});



https://jsfiddle.net/PlayboyZP/1d6jh45e/

Если ширину окна изменять от малого к большему - код работает. Вкладки только на маленьком экране.
Если ширину окна изменять от большего к малому - нет :(. Вкладок нет нигде

А как правильно?

laimas 14.12.2019 15:11

Если верстка на bootstrap, то нем можно скрывать без всякого JS.

рони 14.12.2019 15:36

VasyOK,
$(function() {
    var tab = $("#tabs"), activate;
    function tabs_behavior() {
        var min = $(window).width() < 600;
        if (min && !activate) {
            tab.tabs();
            activate = true
        } else if (!min && activate) {
            tab.tabs("destroy");
            activate = false
        }
    }
    tabs_behavior();
    $(window).resize(tabs_behavior)
});

VasyOK 14.12.2019 17:38

Рони, спасибо! Не знал, что так можно.


Часовой пояс GMT +3, время: 04:11.