Кнопки Navbar остаются нажатыми

Я использую два

<li><a href="#" type="button"  > text</a></li>

введите кнопки в нижней панели моего приложения, чтобы вызвать функции в моем приложении (не для навигации.). После каждого нажатия кнопка остается нажатой до тех пор, пока не будет нажата другая кнопка на панели навигации. Как я могу избежать этого поведения?

3 ответа

Решение

Удалить вручную класс ui-btn-active с последней нажатой кнопки.

$('#button_id').removeClass('ui-btn-active');

РЕДАКТИРОВАНИЕ

Лучший способ - переопределить стили для класса. ui-btn-activeтак же, как для кнопки "без щелчка". Например:

.ui-footer .ui-navbar .ui-btn-active {
    border: 1px solid       #222;
    background:             #333333;
    font-weight: bold;
    color:                     #fff;
    text-shadow: 0 -1px 1px #000;
    background-image: -webkit-gradient(linear, left top, left bottom, from( #555), to( #333));
    background-image: -webkit-linear-gradient(#555, #333);
    background-image:    -moz-linear-gradient(#555, #333);
    background-image:     -ms-linear-gradient(#555, #333);
    background-image:      -o-linear-gradient(#555, #333);
    background-image:         linear-gradient(#555, #333);
}​

Пример тут.

Другой способ справиться с этим - вернуть false из привязки вашего события, чтобы JQM не добавлял класс в первую очередь.

<button type="button" class="btn btn-default touchbtn">Test</button>

$('.touchbtn').bind('touchstart', function() {
    $(this).css('background-color', 'black');
});

$('.touchbtn').bind('touchend', function() {
    $(this).css('background-color', 'white');
});
Другие вопросы по тегам