2013-07-25 110 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頁面事件期間使用,因此需要考慮這一點。

如果你不能使用這個選擇只是一個頁面ID代替它,就像這樣:

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

嗯,但它不適用於: '' – 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

的是,關鍵是要去除活動類然而,由於類沒有添加到輸入標記,我* t被添加到父DIV *,由所有醜陋的東西圍繞「輸入」到設置按鈕的樣式,這就是爲什麼在選擇輸入時刪除活動類不起作用的原因。

通過分析由移動的jquery產生的變通方法的HTML是:

清除活性類的輸入父而不是實際的輸入元件的。 ('.iButton_class_or_ID')。parent()。removeClass('ui-btn-active');

我更喜歡這種方法,而不是在整個頁面中清除所有活動類,以防您希望在刪除類時更具選擇性。

+0

根本不起作用 – marcel