2013-10-28 3 views
2

Я использую виджет Popup библиотеки jQuery Mobile (версия 1.3.1). Я пытаюсь обработать некоторый код в событии beforeposition. documentation говорит, что:Измените параметр «options» события popupbeforeposition

Обработка этого события дает возможность изменить содержимое всплывающего окна до его появления на экране. Например, содержимое можно масштабировать, или его части могут быть скрыты или удалены, если они слишком широкие или слишком высокие. Вы также можете изменить параметр, чтобы повлиять на размещение всплывающего окна. Свойства внутри объекта опций, доступные для модификации, такие же, как те, которые используются методом репозиции.

Мне нужно установить x и y параметры, но я не мог понять, как изменить параметр параметров события. Пример кода был бы потрясающим. Спасибо за ваше время.

ответ

4

beforeposition событий не включает объект, содержащий значения позиции Popup в (варианты), x, y и positionTo.

Чтобы изменить эти параметры после срабатывания триггеров 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

Благодаря Омаром. Это то, что я искал. Просто подсказка для тех, кто сталкивается с этой проблемой. Чтобы решить эту проблему, вы должны использовать версию 1.3.2 jQuery mobile. Версия 1.3.1 содержит ошибку, которая препятствует работе этого решения. – dexter

+0

@dexter приветствую вас и благодарим за подсказку. Я добавлю свой комментарий к своему ответу. – Omar

1

Вот jsFiddle Demo: http://jsfiddle.net/ezanker/3pW3P/

Я использовал popupafteropen событие вместо этого и использовали метод репозиции:

$("#page1").on("pageinit", function() { 
    $("#popupPadded").on({ 
     popupafteropen: function() { 
      $(this).popup("reposition", { 
       x: 70, 
       y: 115, 
       positionTo: "window" 
      }); 
     } 
    }); 
}); 
Смежные вопросы