我有一个对话框出现在jQuery Mobile应用程序的“内部”页面上(即:您从主页导航到的页面)。导航是通过AJAX完成的,因此加载了data-role="page"
的div并设置了动画。
问题在于,如果我通过标准方式请求内部页面,则在我通过$.mobile.changePage
请求时会出现对话框,但是当通过AJAX请求时,对话框根本不会出现。
它位于正确的位置,作为data-role="page"
元素的兄弟(而不是孩子),我尝试将其包含在各个不同的地方,但它只是在请求页面时不会加载通过AJAX。
有什么想法吗?这是打开对话框的代码:
$('a[data-action="audio"]').on('click',
function(e) {
e.preventDefault();
$.mobile.changePage('#recording',
{
transition: 'pop',
changeHash: false,
role: 'dialog'
}
);
}
);
div[data-role="dialog"]
是通过AJAX请求加载的HTML文件的一部分。我也尝试了神秘的dialog()
函数,它自然不起作用。)
有什么想法吗?
答案 0 :(得分:1)
虽然我没有100%确定没有看到更多代码,但我相信你的.on
没有被正确绑定。我认为你的.on
当前绑定到一个用ajax更改/加载的元素。
请用此测试:
$(body).on('click', 'a[data-action="audio"]',
如果这样可行,那么您应该将body
更改为不是ajax的元素。