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

$(select).selectmenu('open') doesn't work if page is loaded using ajax

本文关键字:加载 不起作用 ajax selectmenu select 打开 如果      更新时间:2023-09-26

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

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

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

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

参考文献:链接页面

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

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

这样,当页面准备好时,Jquery会重新创建select菜单所在的表单,因此所有行为都会重新出现。