1

私は非常に奇妙な問題に直面しています。ここに私のコードがあります:

<div id="status">
        <div id="armStatus">
            <div id="armText">
                <fieldset data-role="controlgroup">
                    <legend>Unit</legend>
                    <input type="checkbox" class="CB" name="armCB_1" id="armCB_1" class="custom" data-mini="true" />
                    <label for="armCB_1">Arming Status</label>
                    <p id="armingtext"></p>
                </fieldset>
             </div>
        </div>
        <table class="config" id="status_table">
            <thead>
                <tr>
                    <th colspan="4"; style= "padding-bottom: 20px; color:#6666FF; text-align:left; font-size: 1.5em">Feedback Status</th>
                </tr>
                <tr>
                    <th>Index</th>

                    <th>Feedback Type</th>
                    <th>Feedback Number</th>
                    <th>Status</th>
                    <th class="cHide">Monitor?</th>
                    <th class="cHide">Remove?</th>
                </tr>
            </thead>
            <tbody>
                 <tr>
                 </tr>
            </tbody>       
       </table>
       <button type="button" id="monitor" class="cHide" data-role="button" data-mini="true" data-transition="fade">Monitor</button>

    </div>

上に示したように、ボタンは2 つのテーブル ヘッダーと「remove?」とmonitor同じクラスを持っています。しかし、これが呼び出されると:.cHidemonitor?

$(".cHide").hide();

monitor?andremove?列のみが非表示になっていますが、monitorボタンはまだそこにあります。どうしてこんなことに?どうしたの?

編集: スタンドアロンの場合は正常に動作しているようです。私はそれが原因だと思います

 $('#monitor').button('enable');

どこかに置いた?

これは、非表示と表示を行うコードの一部です.cHide(これは document.ready にあります)。

 $('.done').click(function(){
            $('#n_keypad').hide();
            login_code = $('#myInput').val();

            $.post( '/login' , {passcode:login_code.toString()})
                .done(function(reply) {
                    $("#login_div").hide();
                    alert("You are login as " + reply);
                    if (reply=="engineer"){
                         $("#securityMode").show();
                         $("#labels").show();
                         $("#status").show();
                         $("#display").show();                             
                         $("#logoutbutton").show();
                         $(".cHide").show();
                         $("#loginbutton").hide();
                         $("#configtable").hide();
                    }   
                    else if(reply=="user"){
                        $("#securityMode").show();                            
                        $("#configtable").show();
                        $("#logoutbutton").show();
                        $("#labels").hide();
                        $("#status").show();
                        $("#display").hide();
                        $("#configeditdiv").hide();                            
                        $(".cHide").hide();


                    }
4

3 に答える 3

5

jQuery Mobile では、フレームワークがスタイル付きの div でボタンをラップしてボタンを非表示にする (つまり、既に非表示になっているボタンを非表示にしようとしている) ため、ボタンを非表示にする際に問題がありました。この問題は、次の質問で対処されています: jquery mobile cannot hide submit button

これは、次のようなものがうまくいくことを示唆してい$('.cHide').closest('.ui-btn').hide();ます。試してみて、うまくいくかどうか教えてください:)

于 2013-05-15T08:02:16.660 に答える
-1

ID を使用してボタンを非表示にしてみてください。$("#monitor").hide()

于 2013-05-15T08:18:31.317 に答える