Кнопка возврата JQM привязывается к каждому событию клика, когда оно не предназначено - PullRequest
0 голосов
/ 29 сентября 2011

Использование jQuery Mobile (jquery.mobile-1.0b3.min.js).Если я применяю событие click к форме, кнопка «Назад» также получает привязку события click.Это происходит независимо от того, насколько конкретно нацелен на элемент селектор.Например:

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

<div id="pagename-page" data-role="page" data-add-back-btn="true" data-back-btn-theme="b">

И это в файле сценария: Скопировать код

$('#awards-details-page').live('pagecreate', function(event){

    $('#awards-details-page input[name=submit]').bind('vclick', function() {
        console.log('I'm going to be hijacked by the back button.');
    });
});

Нажатие на спинуКнопка будет выдавать сообщение в консоли при тестировании в браузере.

Каждый раз, когда вы посещаете страницу со скриптом, она добавляет еще одну дублирующую привязку.Попытки отменить привязку события click к событию pagehide работали с целевым элементом, но привязки кнопки back сохранились.

Может кто-нибудь пролить свет на это?

Заранее спасибо.

1 Ответ

0 голосов
/ 30 сентября 2011

не используйте vclick, вы получите призрак, они улучшили CLICK, поэтому просто используйте, что также live - это не bind ... bind относится к существующему элементу, live для всех элементов, которые имеют это общее свойство, до, после и во время,ваши прошлые страницы существуют, поэтому у вас есть набор связанных элементов, а не только один для страницы, на которой вы находитесь.я бы отбросил весь элемент кнопки «Назад» и имел бы свой собственный элемент, на который можно нажимать, для этого вы можете сделать свой собственный код возврата и добавить такие атрибуты, как data-backto = "# page1", тогда вы сможете лучше контролировать то, что происходит при нажатии кнопки назадТем более, что у андроид телефонов тоже есть своя кнопка возврата.

...