Добавление события jquery mobile swipe - PullRequest
27 голосов
/ 03 сентября 2011

У меня есть просмотр списка, и я пытаюсь добавить событие свайпа в ссылки. Например, если пользователь перелистывает первую ссылку, он переходит на эту страницу. Это возможно с элементами списка. Я пробовал div, href, a, li, ul, но до сих пор не насторожился. Это работает с телом. Спасибо

<div>
  <ul data-role="listview" data-inset="true">
   <li class="rqstpage"><a href="./requests.php">Requests</a></li>
   <li><a href="./speakers.php" data-transition="pop">Control Panel</a></li>
   <li><a href="./schedule.html">Schedule</a></li>
   <li><a href="./information.html">Information</a></li>
  </ul>
</div>


<script>
$("div ul li.rqstpage").bind('swipe',function(event, ui){
  $.mobile.changePage("requests.php", "slide");
});
</script>

Ответы [ 5 ]

29 голосов
/ 05 сентября 2011

Live Пример:

JS:

$("#listitem").swiperight(function() {
    $.mobile.changePage("#page1");
});

HTML:

<div data-role="page" id="home"> 
    <div data-role="content">
        <p>
            <ul data-role="listview" data-inset="true" data-theme="c">
                <li id="listitem">Swipe Right to view Page 1</li>
            </ul>
        </p>
    </div>
</div>

<div data-role="page" id="page1"> 
    <div data-role="content">

        <ul data-role="listview" data-inset="true" data-theme="c">
            <li data-role="list-divider">Navigation</li> 
            <li><a href="#home">Back to the Home Page</a></li>
        </ul>

        <p>
            Yeah!<br />You Swiped Right to view Page 1
        </p>
    </div>
</div>

Связанный:

5 голосов
/ 05 сентября 2011

Вы пытались использовать привязку, используя live()?

ОБНОВЛЕНИЕ : .live() устареет, и правильное использование будет .on()

Он прикрепляет обработчик к событию для всех текущих совпадающих элементов , а также тех, которые могут совпадать позже.

pageCreate() {
  $(parent).on('swipe', 'li.rqstpage', function() {
     $.mobile.changePage("requests.php", "slide");
  }
}

Рассматривали ли вы использование этой библиотеки для жестов ?

1 голос
/ 05 сентября 2011

работает, если привязать его непосредственно к элементу управления, например:

pageCreate() {
  $("li.rqstpage").swipe() {
     $.mobile.changePage("requests.php", "slide");
  }
}
0 голосов
/ 09 июня 2014

если вы хотите переход, вам нужно указать, что вы хотите переход, например,

$.mobile.changePage('#page1', { transition: 'flip' });
0 голосов
/ 21 февраля 2014

Если вы хотите, чтобы страница скользила в естественном направлении, которое пользователь проводит, то сделайте это следующим образом:

// For a left swipe: page slides from right to left
$('#listitem').on('swipeleft', function() {
    $.mobile.changePage('#page-to-left', { transition: slide});
});

// For a right swipe: page slides from left to right (add "reverse: true")
$('#listitem').on('swiperight', function() {
    $.mobile.changePage('#page-to-right', { transition: slide, reverse: true});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...