jQuery Mobile对话框不会出现在AJAX请求中

时间:2013-10-21 10:24:48

标签: javascript jquery ajax jquery-mobile

我有一个对话框出现在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()函数,它自然不起作用。)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

虽然我没有100%确定没有看到更多代码,但我相信你的.on没有被正确绑定。我认为你的.on当前绑定到一个用ajax更改/加载的元素。

请用此测试:

 $(body).on('click', 'a[data-action="audio"]',

如果这样可行,那么您应该将body更改为不是ajax的元素。