jQuery(移动):按钮没有隐藏

时间:2013-05-15 07:36:39

标签: javascript jquery jquery-mobile

我面临一个非常奇怪的问题。这是我的代码:

<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>

如上所示,按钮monitor与2个表格标题.cHide和“删除?”具有相同的类monitor?。但是当这个叫做:

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

仅隐藏monitor?remove?列,但monitor按钮仍然存在。 为什么会这样?怎么了?

编辑:如果它是独立的,它似乎工作正常。我怀疑是因为

 $('#monitor').button('enable');
放在某个地方?

这是代码的一部分,我隐藏并显示.cHide(在文档中已经完成)

 $('.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();


                    }

3 个答案:

答案 0 :(得分:5)

jQuery Mobile在隐藏按钮方面存在问题,因为框架将按钮包装在样式化的div中并隐藏按钮(即您试图隐藏已隐藏的按钮)。此问题已解决此问题:jquery mobile cannot hide submit button

这表明像$('.cHide').closest('.ui-btn').hide();这样的东西应该适合你。尝试一下,让我知道它是否有效:)

答案 1 :(得分:0)

隐藏的方法是将样式显示属性设置为none。执行你的代码并使用debbuger工具(如chrome dev工具)检查元素并查看属性是否在按钮上设置

答案 2 :(得分:-1)

尝试使用其ID隐藏按钮。 $(“#monitor”)。hide()