Обновление:
Этот вопрос и предложенные хаки теперь немного устарели. jQuery mobile обрабатывает кнопки немного иначе, чем 3 года назад, а также, jQuery mobile теперь имеет несколько различных определений «кнопки». Если вы хотите сделать то, что искал ОП, теперь вы можете избежать этой проблемы, используя следующую команду:
Шаг 1:
<button class="ui-btn myButton">Button</button>
В качестве альтернативы вы также можете использовать кнопки мобильного ввода jQuery:
<form>
<input value="Button One" type="button" class="myButton">
<input value="Button Two" type="button" class="myButton2">
</form>
Шаг 2:
Тогда ваш стандартный jquery on
обратный вызов:
$(".myButton").on("tap", function(e) {
// do your thing
});
Если вы используете кнопку или вкладку, или что-то еще, к которому применен «активный» класс (по умолчанию ui-btn-active
), старый ответ все равно может быть кому-то полезен. Также, здесь - скрипка , демонстрирующая код ниже.
Выборочное удаление активного состояния:
Как показано в другом ответе, вы можете отключить активное состояние для всех кнопок на всех страницах. Если это приемлемо для рассматриваемого проекта, это подходящее (и более простое) решение. Однако, если вы хотите отключить активное состояние для некоторых кнопок при сохранении активных состояний для других, вы можете использовать этот метод.
Шаг 1:
$(document).bind('mobileinit', function() {
$(document).on('tap', function(e) {
$('.activeOnce').removeClass($.mobile.activeBtnClass);
});
});
Шаг 2:
Затем добавьте класс activeOnce
(или как вы хотите его называть - это пользовательский класс) к кнопкам, которые вы не хотите выделять при нажатии.
И, как обычно, когда привязываете что-либо к mobileinit
, убедитесь, что вы поместили свои привязки - и, возможно, лучше, весь свой код JavaScript - ниже сценарий jQuery и выше скрипт jQuery-mobile.
<script src="js/jquery.js"></script>
<script src="js/my_script.js"></script>
<script src="js/jquery.mobile.js"></script>