如果使用ajax加载页面,则$(select).selectmenu('open')不起作用

时间:2012-09-07 11:59:11

标签: javascript jquery-mobile

我有一个按钮,单击时会显示一个下拉菜单。此代码适用于加载data-ajax="false"

的网页
$('#btnMainMenu').live('click', function() {
  $('#dpMainMenu').selectmenu('open');
}); 

但网站上有data-ajax="true"的锚点,所以每当用户加载这些页面时 - 上面的代码似乎都不起作用。

2 个答案:

答案 0 :(得分:0)

加载data-ajax="true"的页面仅加载页面的特定部分(这是jQuery Mobile的默认行为)。即<div data-role="page">...</div>之间的所有内容。即使以这种方式加载页面,您的代码也能正常工作吗?

参考文献:Linking Pages

答案 1 :(得分:0)

我遇到了同样的问题,我的解决方案是将代码包含在通过Ajax加载的页面主体中(我把它放在下面的表单中)。

<script>
    $('document').read(function () {
        $("#form-id").trigger("refresh", true); 
    });
</script>

有了这个,当页面准备就绪时,Jquery将重新创建selectmenu所在的表单,因此所有行为都会再次返回。