1

いくつかのボタンを含むコントロール グループがあります。実行時にボタンを削除したいと思います。

<div id="buttons" data-role="controlgroup" data-type="horizontal">
    <button id="btn1">Do 1</button>
    <button id="btn2">Do 2</button>
    <button id="btn3">Do 3</button>
</div> 

$('#btn1').remove();

しかし、これはうまくいきません。を使用して非表示にすることはできます$('#btn1').button('disable');が、それは私が探しているものではありません。

エラーはありません。水中では、ボタンは実際には削除されますが、ラップされたスパンと div は残ります...

作成される実際の html は次のとおりです。

<div data-type="horizontal" data-role="controlgroup" id="buttons" class="ui-corner-all ui-controlgroup ui-controlgroup-horizontal">
    <div class="ui-controlgroup-controls">
        <div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="" data-iconpos="" data-theme="c" data-inline="false" data-mini="false" class="ui-btn ui-btn-up-c ui-fullsize ui-btn-block ui-corner-left" aria-disabled="false">
            <span class="ui-btn-inner ui-corner-left">
                <span class="ui-btn-text">Do 1</span>
            </span>
            <!-- here button is gone, but not remaining div/span litter -->
        </div>
        <div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="" data-iconpos="" data-theme="c" data-inline="false" data-mini="false" class="ui-btn ui-btn-up-c ui-fullsize ui-btn-block" aria-disabled="false">
            <span class="ui-btn-inner">
                <span class="ui-btn-text">Do 2</span>
            </span>
            <button id="btn2" class="ui-btn-hidden" aria-disabled="false">Do 2</button>
        </div>
        <div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="" data-iconpos="" data-theme="c" data-inline="false" data-mini="false" class="ui-btn ui-btn-up-c ui-fullsize ui-btn-block ui-corner-right ui-controlgroup-last" aria-disabled="false">
            <span class="ui-btn-inner ui-corner-right ui-controlgroup-last">
                <span class="ui-btn-text">Do 3</span>
            </span>
            <button id="btn3" class="ui-btn-hidden" aria-disabled="false">Do 3</button>
        </div>
    </div>
</div>

誰でもこれを行う方法を知っていますか? http://jsfiddle.net/NVbjr/1/

4

2 に答える 2

2

イベントハンドラ「pagebeforecreate」で要素を削除できます。

$(document).bind('pagebeforecreate', function(){
    $('#btn1').remove();
});

それ以外の場合は、後でイベントを削除します。他の方法で行うことができます。

 $(document).bind('pageshow', function(){ 
     $('div[data-role=controlgroup]').children().each(function(index, value){
        if(index === 0) {
           $(value).remove();
        }
     });
 });

https://dl.dropbox.com/u/49735179/Stackoverflow/buttonGroup/test.html

于 2012-08-13T14:40:09.340 に答える
2

http://jsfiddle.net/rlemon/NVbjr/2/

正しい順序でこれを発射していなかったからです。フィドル「オンロード」があったはずがありません。iirc jQuery mobile は、そのロード シーケンスが面白いです。これを nowrap (本文) に移動すると、すべてが機能します。

于 2012-08-13T14:20:15.957 に答える