Передача переопределений опций в функцию jquery - PullRequest
1 голос
/ 08 февраля 2012

Я использую jquery.mobile-1.0.1.

Я пытаюсь перезагрузить страницу при нажатии на текущую «вкладку» в представлении пользовательского интерфейса:

enter image description here

Мне удалось отследить функцию и изменить исходный код в jquery.mobile-1.0.1.js, чтобы это исправить, но мне интересно, есть ли способ сделать это без изменения источника jquery-mobile .

Рассматриваемая функция:

$.mobile.loadPage = function( url, options ) {      
settings = $.extend( {}, $.mobile.loadPage.defaults, options ),
//rest omitted

Я вижу, что она объединяет настройки по умолчанию (mobile.loadPage.defaults) с определенными пользователемoptions

Вам необходимо передать reloadPage: true через параметры, так как по умолчанию установлено значение false.

Если я следую за стеком вызовов вверх, он логически (для передачи аргументов) останавливается на

$.mobile.changePage( href, { transition: transition, reverse: reverse, role: role } );

, поэтому я передал здесь reloadPage: true, но это изменило бы источниккод jquery.mobile-1.0.1.js, который я пытаюсь избежать.

Я новичок в js и jquery, поэтому не уверен, существует ли какой-то стандартный способ передать эти параметры, как кажется, вот и всекак он был спроектирован, или, возможно, он был спроектирован для внутреннего использования jquery.mobile, и изменение источника - единственный способ.

Мне интересно, существует ли какой-либо глобальный способ установки аргументов / опцийэто было бы доступно для этой функции;кажется странным, что мобильные ребята из jquery, казалось бы, кодируют reloadPage, но не выставляют его для вызываемых абонентов.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2012

Я нашел самый простой способ добавить это:

<script type="text/javascript">

    $.mobile.loadPage.defaults.reloadPage = true;

</script> 
0 голосов
/ 09 февраля 2012

Я думаю, вы можете быть смущены тем, что делает reloadPage, когда вы вызываете $ .mobile.changePage, вы можете передать reloadPage, но это только перезагрузит кэшированную копию текущей страницы.

Если то, что выВы ищете обновление, которое нужно указать jQM не загружать через AJAX, используя ссылку с data-ajax="false" или rel = "external" (для внешних ссылок домена)

Вы пытаетесь изучить jQMредактируя страницу документации jQM?Ссылка в вопросе: <a href="docs/about/intro.html" class="ui-link-inherit">Intro to jQuery Mobile</a>, если вы только что добавили data-ajax = "false", он загрузит intro.html на новой странице (полное обновление).

Если вы действительно хотите передатьreloadPage: true в этом случае вам нужно изменить href на #, затем связать обработчик, который вызывает $ .mobile.changePage, с передачей reloadPage: true в качестве опции, или просто использовать атрибут onClick (не очень)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...