【发布时间】:2026-02-08 16:00:01
【问题描述】:
我正在开发一个由 django 驱动的 SPA 应用程序,该应用程序的主界面由 jquery mobile 提供支持。
我只有一个面板。我的最终目标是让这个面板根据用户点击打开它的链接动态更新。
面板开始空白:
<div data-role="panel" id="properties_panel" data-display="overlay" data-position="right" data-position-fixed=true>
</div>
但是,当单击某些链接时,我想使用 AJAX 加载外部 html 文件以更新面板的内容:
var panel_text;
var menu_item_selector = $.get( "{% static 'elements/menu_preferences_elements.html' %}", function() {
panel_text = menu_item_selector['responseText'];
})
.done(function() {
})
.fail(function() {
})
.always(function() {
});
现在,成功获取并加载了 ajax 文件,但是,我的目标是将内容显示为 jquery 移动元素(在本例中为列表视图)。但是,内容显示为普通列表,而不是列表视图。
menu_preferences_elements.html 的内容:
<div class="editing_tools_section shadow">
<div class="editing_tools_heading ui-btn ui-icon-minus ui-btn-icon-right ui-nodisc-icon">Search for menu item</div>
<div class="editing_tools_item">Use the search box below to search for a menu item.</div>
<div class="editing_tools_item grey_bg">
<ul id="menu_item_list" data-role="listview" data-filter="true" data-icon="false" data-filter-reveal="true" data-filter-placeholder="Search for menu item..." data-inset="true">
<script>
menu_database().each(function(record){
document.write("<li><a href='#' data-elementid='"+record.Item_Id+"'>"+record.Name+"</a></li>");
});
</script>
</ul>
</div>
</div>
如果我将该外部 html 文件的内容直接放入面板中,它的功能 100% 符合预期。但是,当我动态添加它时,它不会将其视为 jquery 移动内容,而是将其呈现为纯列表。
这里是 jquery onclick 监听器:
$(".editing_tools_section").on('click','.editing_tools_item', function(){
$("#properties_panel").html(panel_text);
$("#properties_panel").trigger('updatelayout');
$("#properties_panel").panel("open");
});
有没有办法让内容正确显示为可过滤的 jquery 移动列表视图?
编辑:
使用 create 方法修复:
$("#properties_panel").trigger('create');
【问题讨论】:
标签: jquery ajax django jquery-mobile