Изменение id и свойства div при изменении размера окна в jquerymobile

Мой текущий код

<div id="column-left"> Test </div> 

Когда размер окна меньше 640 пикселей, как я могу изменить его как:

 <div data-role="panel" id="left-panel" data-position="left"> Test </div> 

data-role = "panel" – код jquerymobile. Вопрос заключается в том, как мы можем добавить атрибут data-role = "panel" в div. Благодаря!

Вы можете протестировать свой код в http://jsbin.com/wakagumu/11/edit . Если это произойдет, тест «FIRST» исчезнет после изменения id = «column-left» на data-role = «panel» id = «left-panel».

 $(window).resize(function(){ if ($(this).width() < 640) { var myDiv = $('#column-left'); if (myDiv.length > 0) { myDiv.attr('id', 'left-panel').data('role', 'panel').data('position', 'left'); } } else { var myDiv = $('#left-panel'); if (myDiv.length > 0) { myDiv.attr('id', 'column-left').data('role', '').data('position', ''); } } }); 

Изменение атрибутов не преобразует div в панель , вам необходимо инициализировать его вручную. В jQuery Mobile 1.3 вы должны использовать .trigger("pagecreate") при динамическом добавлении панели для ее инициализации .

В приведенном ниже решении создается панель и перемещается элементы div div, когда ширина страницы мала; и он удаляет панель и возвращает элемент div div в исходное положение. Кроме того, он создает кнопку внутри заголовка, чтобы открыть панель . Его можно использовать в любых событиях на странице, а также при изменении throttledresize и orientationchange окна.

 $(window).on("throttledresize", function () { var activePage = $.mobile.activePage; if ($(window).width() < 500 && activePage.find("[data-role=panel]").length === 0) { /* create button */ var button = $("<a/>", { "data-role": "button", "data-icon": "bars", "id": "panelBtn", "data-theme": "e", class: "ui-btn-left" }).text("Panel"); /* add click listener to open panel and append it to header */ activePage.find(".ui-header").append($(button).on("click", function () { $("#left-panel").panel("open"); })); /* save menu */ var menu = $("#menu"); /* create a panel append menu create page */ activePage.prepend($("<div/>", { id: "left-panel", "data-role": "panel", "data-position": "left", "data-display": "push" }).append($("<div/>", { class: "ui-panel-inner" }).append(menu))).trigger("pagecreate"); } if ($(window).width() > 500 && activePage.find("[data-role=panel]").length === 1) { /* remove panel and button return menu to content div */ if (activePage.hasClass("ui-page-panel-open")) { activePage.find("[data-role=panel]").panel("close").on("panelclose", function () { var menu1 = activePage.find("[data-role=panel] #menu"); activePage.find("[data-role=content]").append(menu1); activePage.find("[data-role=panel]").remove(); activePage.find("#panelBtn").remove(); activePage.trigger("pagecreate"); }); } else { var menu1 = activePage.find("[data-role=panel] #menu"); activePage.find("[data-role=content]").append(menu1); activePage.find("[data-role=panel]").remove(); activePage.find("#panelBtn").remove(); activePage.trigger("pagecreate"); } } }); 

демонстрация