2013-07-25 10 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は、pagebeforeshow、pageshow、pagebeforechange、pagechange、pagebeforehide、およびpagehideページイベントでのみ使用できます。これを考慮してください。

$('#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

私はそのような条項を持っています。私はunpressボタンへのコードに興味があります。 – jaynp

+0

ボタンをどのように実装したかを確認できるように、コードに質問を投稿する必要があります。 –

0

あなたはこのように、ページIDと交換し、このセレクタを使用するカント場合

ボタンとして「アンカー」ではなく「入力」を使用します。たとえば「送信​​」ボタンと「リセット」ボタンを使用してそれらを押すと、ボタンはクリックされたときに実行されるアクションによっては望ましくない場合があります。

私はイエストリックは削除することですアンそれは予想される動作であれば、私はjQueryのモバイルバグで読んだことがあることを確認していないが、行動がまだ存在する少なくともjQM 1.3.2で

アクティブクラスクラスはinputタグに追加されていないので、しかし、それらがトリッキー取得述べたように、私は* トンを「入力」を中心に醜いもののすべてによって作成された親DIV *に追加されます入力を選択したときにアクティブなクラスを削除するのがなぜ機能しないのでしょうか?代わりに、実際の入力要素の入力親にアクティブクラスを削除

:jQueryの移動により回避策を生成HTMLを解析することにより

はです。

$( '。mybutton_class_or_ID')。parent()。removeClass( 'ui-btn-active');

私は、クラスを削除することでより選択したい場合に備えて、ページ全体でアクティブなクラスをすべてクリアするのではなく、この方法をお勧めします。

+0

はまったく動作しません – marcel

関連する問題