JQM在ajax之后,弹出窗口无法正确呈现

时间:2014-03-12 21:47:04

标签: javascript jquery-mobile

在ajax成功之后我的弹出窗口出现问题,它没有调整到中心,但第二次调整大小(因为它已经加载)。我试图遵循这个example,但有错误(没有弹出)。从我的代码来看,动态弹出窗口是否更好,或者有哪种方法可以像beforepageshowload那样在中心显示?例如下面:

//popup
<div data-role="popup" id="popupFood" data-theme="a" class="ui-corner-all">
    <div style="padding:10px 20px;">
    <h3>Preferences</h3>
    <div class="ui-block-a" id="foood" style="width:50%"></div>
    <button type="button" onclick="someaction()" class="ui-btn ui-corner-all ui-shadow ui-btn-b ui-btn-icon-left ui-icon-check">Search</button>
    </div>
</div>

//ajax success
function food(data, textStatus){
    $('#foood').empty();
        $.each(data, function (i, x) {
            var foodTest = '<label for="grid-checkbox-' + x.id + '">' + x.description+ '</label>' +
            '<input type="checkbox" name="grid-checkbox-' + x.id + '" id="grid-checkbox-' + x.id + '" value="' + x.id + '" data-mini="true" >';
            $('#foood').append(foodTest);
    });
    $('#foood').enhanceWithin(); 
}

1 个答案:

答案 0 :(得分:0)

您可以通过

中心弹出窗口
  • 成功完成Ajax后以编程方式打开它。请注意,您需要删除data-rel="popup"并在 Anchor 标记上将href设置为href="#"

    $("#popupFood").popup("open");
    
  • 通过聆听popupafteropen事件重新定位,然后使用reposition选项覆盖位置。

    $("#popupFood").on("popupafteropen", function () {
      $(this).popup("reposition", {
        positionTo: "window"
      });
    });
    
  

<强> Demo