2012-02-14 90 views
16

更改jquery移動翻轉開關狀態我的Android/iPad應用程序中有一些jQuery Mobile翻轉切換開關,我需要 使用JavaScript動態更改其狀態(開/關)。 我在這裏尋找解決方案,(Change value of flip toggle dynamically with jQuery Mobile),我嘗試了幾種方法(.val('on'),.slider('enable') ...),但它似乎控制根本不起作用。如何從代碼

是否有解決此問題的方法?我怎樣才能從代碼中改變翻轉開關的狀態?

回答

25

我檢查您發佈的網頁,我證實瞭解決方案:

$('selector').val('value').slider('refresh'); 

確實工作。確保'選擇器'引用你的select元素,'value'是你在你希望啓用的選項元素上定義的值。

我證實了這一點通過訪問http://jquerymobile.com/demos/1.0.1/docs/forms/switch/index.html,然後用Firebug的控制檯中輸入線:

$("#flip-b").val('no').slider('refresh'); 

它轉換爲不顯示在頁面上是從第二個滑塊。

+0

是的。我設置了錯誤的值。謝謝。 – 2012-02-15 03:00:40

3

這是否工作:

JS

var fts = $('#flipMe'); 
fts.val('on'); 
fts.slider('refresh'); 

HTML

<label for="flip-a">Select slider:</label> 
<select name="slider" id="flipMe" data-role="slider"> 
    <option value="off">Off</option> 
    <option value="on">On</option> 
</select> 
0

@·皮薩諾的回答上面工作了 我。

我也有這個問題。就我而言,我錯過了所有重要的「.slider(‘刷新’)」

乾杯, 史蒂夫

4

的jQuery 1.4或更高版本,如果你想切換動態翻轉開關

$("#flip").val('on').flipswitch('refresh'); 

請確保您的數據角色倒裝開關使此工作。

祝你好運!

+4

data-role =「flipswitch」(無連字符) – par 2014-06-04 04:38:07

0

我不能讓「flipswitch」部分的工作,所以對待它像一個正常的複選框可能爲你工作(這是jQuery Mobile的1.4.3):

$('input[name="my-flipswitch-name"]').prop('checked', true).trigger('click').trigger('change'); 
3

有類型flipswitch,選擇爲準複選框爲準。 要設置請選擇基於的小部件,請使用。val()構造

$("#myFlip").val("on").flipswitch("refresh") ; 

其中「on」是select元素中的一個選項值。

要設置複選框基於小組件,使用.prop()構造

$("#myFlip").prop("checked", true).flipswitch("refresh") ; 

其中true是真或假。 (感謝Jeremy Hill的提示)。

順便說一句我試過`.flipswitch(「選項」,「檢查」,真)構造沒有運氣。

注意還有一個滑塊開關類似於基於選擇的flipswitch

0

有兩種方法可以製作flipswitches(基於複選框和基於選擇),但您只能使用基於選擇的方法動態更改狀態。

Jquery的改變狀態:

$("#mySwitch").val('no').flipswitch('refresh'); 

基於選擇-方法:

<select name="mySwitch" id="mySwitch" data-role="flipswitch" > 
    <option value="no">No</option> 
    <option value="yes">Yes</option> 
</select> 

複選框基於:(不能動態地改變狀態)

<input type="checkbox" id="mySwitch" data-role="flipswitch"> 
-1

$("#mySwitch").val('no').flipswitch().flipswitch('refresh'); 也似乎工作。