0

我不知道是否有人熟悉 bPopup 但这里什么都没有。

我有一个运行的 AJAX 请求,成功后它将新内容加载到弹出窗口中,从而改变了大小,在此之后我将如何正确地重新居中 div?

这是 bPopup 代码

我尝试运行重新居中功能,但是在尝试运行这样的功能时出现错误“未捕获的 ReferenceError:bPopup 未定义”:

bPopup.recenter();

有任何想法吗?

多谢你们!

4

2 回答 2

1

是的,我也有类似的情况。加载 ajax 后弹出窗口的内容发生了变化,但打开的弹出窗口的大小保持不变。

建议你关闭弹窗,清空弹窗div的内容,然后马上重新打开。它创造了一个很好的效果,新的弹出窗口现在调整大小以适应新的内容。

例子:

$('#buttonToPopup').bind('click', function(e) {  
    $('#popupDIV').bPopup().close();
    $('#popupDIV').empty();  // clear the previous contents of the popup
    $('#popupDIV').bPopup({
       loadUrl: myNewURL     // this is the new ajax content
    });
});
于 2013-04-19T15:27:20.853 回答
1

触发$(window).resize()事件。

recenter()在 bPopup 中是私有的。您可以调用bPopup().reposition()对齐弹出窗口,但如果用户滚动页面,弹出窗口将再次错位。仅触发$(window).resize()事件对我有用:

$('#my-button').click(function() {
    // show the popup
    var myPopup = $('#my-popup');
    myPopup.bPopup();
    // load new content
    $.get(myUrl).done(function(data) {
      myPopup.html(data);
      // trigger "window resized"
      $(window).resize();
      // this will not work if the user scrolls the page
      /* myPopup.bPopup().reposition(); */
    });
});
于 2016-04-10T22:12:43.097 回答