Привязка навигационной панели Jquery Mobile приводит к нескольким событиям щелчка и случайному поведению - PullRequest
1 голос
/ 29 июня 2011

Использование Jquery Mobile 1.0b

<div class="navSubBars" id="cat0Nav" data-role="navbar" style=" padding-top: 2px;">
  <ul>
    <li>item1
    <li>item2
    <li>item3
    <li>item4
 </ul>
</div>

$('.navSubBars>ul>li>a').live('vclick',function() {
  var subMenuItem = $(this).text();
  alert(subMenuItem);
});

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

Мне это нужно для загрузки динамического содержимого в div на той же странице, в случае, если это поможет.

Я попытался создать цепочку unbind для привязки, остановить распространение и вернуть false, а также различные селекторы, но все безуспешно.

Я ищу обходной путь, исправление или лучший подход. Благодаря.

1 Ответ

3 голосов
/ 29 июня 2011

Ваши теги li недействительны. HTML

1002 * Live Пример:

HTML: (добавление атрибута класса для доступакаждый ли)

<div data-role="page" id="jqm-home" class="type-home"> 
    <div data-role="content">        
        <div class="navSubBars" id="cat0Nav" data-role="navbar" style=" padding-top: 2px;">
            <ul>
                <li class="click-li">item1</li>
                <li class="click-li">item2</li>
                <li class="click-li">item3</li>
                <li class="click-li">item4</li>
            </ul>
        </div>
    </div>
</div>

JS:

$('.click-li').live('vclick', function() {
   var subMenuItem = $(this).text();
    alert('Sub Menu Item: '+subMenuItem);
});
...