Data-transition и data-ajax заедно в Jqmobile

В моя код на Jqmobile се опитвам да прехвърлям страници, като прилагам data-transition="slide" за anchor връзки.. Проблемът е, че свързаните страници имат персонализиран jquery, кодиран от мен... Когато ударя anchor с data-transition="slide" и href след това със сигурност преминава, но персонализираните jquery скриптове на свързаната страница не се изпълняват... Опитах да използвам data-ajax-"false", но в този случай персонализираният скрипт се изпълнява, но не data-transition="slide"... Искам и двете заедно да се изпълняват... Може ли да е възможно... ??

Ето простия обичай, в това показвам/скривам полета за въвеждане..

<script type="text/javascript">
$(document).bind("pageinit", function(){
      $('#near_index').hide();
      $('#find').click(function() {
             $('#near_index').show();       
      });
    });
</script>

Ето HTML,

<a href="/bgcategory.html" data-transition="slide" data-ajax-"false"><img src="images/23-bird.png" alt="Category 2" class="ui-li-icon iconSmall">Category 2</a>

person SaurabhLP    schedule 08.06.2012    source източник


Отговори (1)


pageinit е за инициализация на плъгини - вижте тук.

Така че това събитие ще се задейства само веднъж, когато JQM се зареди за първи път. След като вашата "страница" (DOM) бъде инициализирана. Всички други страници, които заредите, ще бъдат изтеглени в DOM, но няма да задействат друго pageinit.

Просто използвайте някое от другите налични събития (връзка по-горе), като pagebeforeshow или pageshow. Те ще се задействат с всяка страница, която се зарежда в DOM. Просто поставете console.log("HELLO") в манипулатора на събития и вижте дали се задейства.

РЕДАКТИРАНЕ Преходи:
Не можете да зададете data-ajax="false" и да имате преход (слайд от страница A към страница B), защото преходът е резултат от използването на AJAX за зареждане на новия страница В DOM срещу обикновена връзка (data-ajax="false"), изпускаща стария DOM и зареждаща новата страница (нов DOM).

Концепцията на JQM е винаги да остава в ЕДНА И СЪЩА „Страница“ и просто да зарежда/извежда нови страници чрез Ajax. Ето как можете да правите преходи (заредете нова страница, позиционирайте я до старата и след това плъзнете).

Това също може да е причината вашият персонализиран код да не се задейства, защото ако кажете data-ajax="false", вие казвате на JQM „Приключих тук“ и зареждате нова страница.

Ако нямате нужда от data-ajax="false", оставете го.

person frequent    schedule 08.06.2012
comment
няма полза, приложих както pagebeforeshow, така и pageshow, console.log(HELLO) не задейства... преходът не се случва.. - person SaurabhLP; 08.06.2012
comment
Мислех, че питахте за липсващо персонализирано скриване/показване. Вашият ефект на преход = слайд няма да се случи, ако имате data-ajax=false във връзката си. Вижте моята редакция - person frequent; 08.06.2012