4

$('#popupDiv').popup("open");

这以编程方式打开了一个 JQueryMobile 弹出窗口,但我想知道是否可以更改或设置弹出窗口的设置,例如上面data-positiondata-transition代码。谢谢。

4

3 回答 3

19

你可以做:

$('#popupDiv').popup("open", {positionTo: '#mydiv'});

不过,'origin' 在 1.2 版中对我不起作用。

见:http: //jquerymobile.com/demos/1.2.0/docs/pages/popup/methods.html

于 2012-11-02T14:23:16.973 回答
2

直接来自jQuery Mobile 文档

定位选项 默认情况下,弹出窗口在您单击的内容(原点)上垂直和水平居中打开,这对于用作工具提示或菜单的弹出窗口很有用。该框架还应用了一些基本的碰撞检测规则,以确保弹出窗口出现在屏幕上,因此最终位置可能并不总是以原点为中心。

对于像对话框或灯箱这样的情况,弹出窗口应该出现在窗口的中心而不是在原点上,将 data-position-to 属性添加到链接并指定 window 的值。

除了 origin 和 window 之外,还可以指定任何有效的选择器作为 position-to 的值。例如,如果您添加 data-position-to="#myElement",则弹出窗口将定位在 id 为 myElement 的元素上。

<a href="#positionWindow" data-rel="popup" data-position-to="window" data-transition="slideup">

    <div data-role="popup" id="positionWindow">
        <p>I am positioned to the window.</p>
    </div>

您可以将data-transition="slideup"(或您选择的转换)添加到链接,以及我的答案顶部的文档链接中概述的其他定位选项。

于 2012-11-02T18:29:02.747 回答
1

是的,正确的方法是像这样使用 event.target

$('#popup').off('taphold').on('taphold', function (e) {
     $('#popupDiv').popup("open", e.target);
});

顺便说一句,如果您点击按住按钮并且单击事件就像这样,则此代码会弹出一个弹出窗口,这意味着正常单击仍然有效

 $('#popup').on('tap', function (){
     var url = $(this).attr('url');
     window.open( url, '_parent');              
 });

注意:我url='google.com'在标记中添加了“”并制作了href='#'

于 2015-10-07T12:41:12.527 回答