2013-10-28 82 views
2

我正在使用jQuery Mobile庫(版本1.3.1)的Popup小部件。我正在嘗試處理beforeposition事件中的一些代碼。 documentation表示:修改popupforeforeposition事件的「選項」參數

處理此事件有機會在彈出窗口出現在屏幕上之前修改其內容。例如,如果內容太寬或太高,則內容可以縮放或部分可以隱藏或刪除。 您也可以修改選項參數以影響彈出窗口的放置位置。可用於修改的選項對象內的屬性與重定位方法使用的屬性相同。

我需要設置xy參數,但我無法弄清楚如何修改事件的選項參數。一個代碼示例非常棒。謝謝你的時間。

回答

4

beforeposition事件省略含有彈出的位置(地點)的值的對象, xypositionTo

要修改那些選項一次beforeposition觸發器,請使用下面的代碼。

$(".selector").on("popupbeforeposition" , function (e, ui) { 
    ui.x = value; 
    ui.y = value; 
    /* OR 
    ui.positionTo = "window" 
    */ 
}); 

如果您希望以編程方式打開彈出窗口,請使用下面的代碼。

$(".selector").popup("open", { 
    x: value, 
    y: value 
}); 

值=數以像素

Demo

+1

由於奧馬。這正是我所期待的。對於遇到這個問題的任何人,只是一個提示。要解決它,你必須使用jQuery手機版本1.3.2。版本1.3.1有一個阻止此解決方案工作的錯誤。 – dexter

+0

@dexter歡迎您,並感謝您的提示。我會將你的評論添加到我的答案中。 – Omar

1

這裏是一個的jsfiddle演示:http://jsfiddle.net/ezanker/3pW3P/

我用popupafteropen事件來代替,而所用的復位方法:

$("#page1").on("pageinit", function() { 
    $("#popupPadded").on({ 
     popupafteropen: function() { 
      $(this).popup("reposition", { 
       x: 70, 
       y: 115, 
       positionTo: "window" 
      }); 
     } 
    }); 
});