初始化之前无法在flipswitch上调用方法

时间:2015-05-08 18:06:33

标签: javascript jquery html jquery-mobile jquery-mobile-flipswitch

我想设置jQuery Mobile flipswitch的选定值:

<select id="quote" data-role="flipswitch" data-theme="b">
    <option value="nee">Nee</option>
    <option value="ja">Ja</option>
</select>

执行以下操作时出现错误:

 $("#quote").val('nee').flipswitch('refresh');

“无法在初始化之前调用flipswitch上的方法”

我也尝试过:

$("#quote").val('nee').slider().flipswitch('refresh');
$("#quote").val('nee').flipswitch().flipswitch('refresh');

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:0)

/**
* UI Behaviour,
* Toggle switches.
* @param {bool} isOn || isOff
* @access public
*/
function updateUiSwitches( el, isOn ) {

    el.find( 'input[type=checkbox]' ).each(function( index, el ) {

        $( el ).flipswitch().prop( 'checked', ( isOn )? true : false ).flipswitch( 'refresh' );

    });

}

// toggle switch on
updateUiSwitches( $( '#quote' ), true );

:) 对不起,Boet;只是把它砸在记事本上,没有经过测试。 。 。 但应该可以解决问题(或至少在期望的方向进行操作)。

答案 1 :(得分:0)

所讨论的HTML要么已通过编程方式注入。或者,例如,HTML被隐藏在选项卡中,因此不要由jQuery Mobile初始化。

refresh()之前至少调用一次:

$("#quote").enhanceWithin();

您可以根据需要增强最大的代码块:

$("#huge-html-content").enhanceWithin();