Кнопки 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');
});