2013-07-25 1 views
8

У меня есть мобильная кнопка jQuery, подключенная к ajax POST. Если POST не удается, кнопка JQuery мобильного остается нажатой вместо `` выскакивать». Любые идеи?jQuery передвижная кнопка оставаясь нажатой

+2

Можете ли вы показать код? Может быть полезной функция, вызванная нажатием кнопки. –

+0

Возможно, у вас есть «нажатый» класс CSS, который не удаляется? – Deborah

+0

Возможный дубликат [Как удалить активное состояние кнопки с помощью jQuery Mobile?] (Http://stackoverflow.com/questions/7507099/how-do-you-remove-a-buttons-active-state-with-jquery -mobile) – Flimzy

ответ

7

Это может быть легко сделать

Здесь примере jsFiddle сделал для одной из моих предыдущих ответов:. http://jsfiddle.net/3PhKZ/7/

Если вы посмотрите, есть эта строка кода:

$.mobile.activePage.find('.ui-btn-active').removeClass('ui-btn-active ui-focus'); 

Он попытается найти нажатую кнопку на текущей активной странице, если она преуспеет, она удалит 2 класса, ответственных за нажатие кнопки. К сожалению, чистое решение CSS здесь невозможно. Вы можете проверить этот пример, просто прочесть верхнюю строку и посмотреть, что произойдет.

Последнее, что выбрать. $ .mobile.activePage можно использовать только во время просмотра страницы, просмотра страниц, пересылки страницы, обмена страницами, страницы и переднего экрана, поэтому учитывайте это.

В случае, если вы не можете использовать этот селектор просто заменить его на идентификатор страницы, как это:

$('#pageID').find('.ui-btn-active').removeClass('ui-btn-active ui-focus'); 

Так что ваш окончательный код будет выглядеть следующим образом:

$.ajax("example.php") 
.success(function() { doStuff(); }) 
.error(function() { 
    $('#pageID').find('.ui-btn-active').removeClass('ui-btn-active ui-focus'); 
}) 
+0

Спасибо! Что-то вроде этого проще и, кажется, работает: 'Next page' '$ ('# foobar'). RemoveClass ('ui-btn-active ui-focus');' Разве это не достаточно? – jaynp

+0

hmmm, но он не работает с: '' – jaynp

+0

Не с '' – jaynp

0

Добавить статью об ошибке вашей обработки AJAX, которая выскакивает кнопку назад.

$.ajax("example.php") 
.success(function() { doStuff(); }) 
.error(function() { /*code to unpress button here*/ }) 
+0

У меня есть такая статья. Меня интересует код для отмены нажатия кнопки. – jaynp

+0

Вы должны опубликовать свой код в вопросе, чтобы мы могли видеть, как вы внедрили свою кнопку. –

0

Для тех людей, там используя «ввод», а не «якоря» в качестве кнопок. При использовании, например, кнопок «отправить» и «перезагрузить» и нажимая их, они остаются активными, что иногда нежелательно в зависимости от действий, выполняемых при нажатии кнопок.

Я не уверен, если это ожидаемое поведение, я прочитал, что это мобильный ошибка JQuery, но поведение по-прежнему присутствует, по крайней мере в jQM 1.3.2

да хитрость заключается в том, чтобы удалить Активный класс как указано, однако те становятся хитрыми, потому что класс не добавлен во входной тег, i * t добавляется к родительскому DIV *, который создается всеми уродливыми материалами вокруг «ввода» в стиль кнопки, поэтому удаление активного класса при выборе ввода не работает.

Анализируя HTML произведенный JQuery мобильный обходной путь заключается в следующем:

удалить активный класс на входе родителя вместо фактического входного элемента.

$ ('. Mybutton_class_or_ID'). Parent(). RemoveClass ('ui-btn-active');

Я предпочитаю этот подход вместо очистки всех активных классов по всей странице, если вы хотите быть более избирательными с удалением класса.

+0

не работает вообще – marcel

Смежные вопросы