2010-11-24 7 views
9

jQuery Mobileを使用していて、設定をクッキーに保存しています。設定ページがリロードされると、すべての値を設定するためにCookieが読み込まれます。 flip toggle switchの設定に問題があります。ほとんどの要素はkeyupイベントまたはchangedイベントをトリガする必要がありますが、フリップトグルが選択ボックスからその値を取得する方法はわかりません。何か案は?jQuery Mobileでフリップトゥルー値を動的に変更する

答えて

1

通常のHTMLのように選択して値を設定するだけで、フリップトグルスイッチが自動的にピックアップすると思います。すなわち

<select name="slider" id="slider" data-role="slider"> 
    <option value="off">Off</option> 
    <option value="on" selected="selected">On</option> 
</select> 
+0

しかし、彼はクッキーを使用しているので、読み込まれたページではJavaScriptが使用されています。 – naugtur

3

壊れているようです。ページへ

移動:http://jquerymobile.com/demos/1.0a2/#docs/forms/forms-switch.htmlと、次を実行するために放火犯コンソールを使用します。

$('#slider2').val('on').trigger('keyup'); 

それは、スイッチの一部「オン」の幅を変更しますが、スライダーを移動しません。

だから、答えは:JQMのリリースを待つ:)ここで発行され

バグ:それはすることになっているよう$('#slider2').val('on')を使用してhttps://github.com/jquery/jquery-mobile/issues/issue/676

0

は、値を変更しますが。ただしoptionにはui-btn-activeなどのCSSクラスは追加されず、そのクラスはoptionから削除されません。 optionを動的に変更する場合は、jQuery Mobileではなく、手動でこれらの部分を処理する必要があります。

$('#Switch2').val('on').slider("refresh"); 
24

あなたはトグルするアニメーションのためにそれを更新する必要があります値を設定し、作成とリフレッシュをトリガーします。 その後、スライダにバインドしたアクションを実行するには、slidestopイベントをトリガする必要があります。例:

$('#mySlider').val('on').trigger('create').slider("refresh"); 
$('#mySlider').trigger('slidestop'); 

これをjQueryモバイル版でテストしました。 1.3.0

0

これは私の作品:

if (someCondition) { 
     $('#slider').val('off'); 
    } 
    else { 
     $('#slider').val('on'); 
    } 
    try { 
     $('#slider').slider("refresh"); 
    } 
    catch (err) { 
     console.log ("Error occurred refreshing slider (probabily first time!)"); 
    } 
1

これはにある達成するための簡単な方法を使用すると、スイッチの値を変更した後

関連する問題