2013-05-15 89 views
1

我正面臨一個非常奇怪的問題。這裏是我的代碼:?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是具有相同類.cHide爲2表頭monitor?和「刪除'。但是當這種被稱爲:

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

只有monitor?remove?列被隱藏,但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(); 


        } 
+0

您是否使用調試器檢查了'$(「。cHide」)'的值?代碼看起來不錯。 – Jan

+1

你的代碼工作正常 - http://jsfiddle.net/JY2ub/。這是外面的東西,會導致問題。 – lifetimes

+0

你使用任何UI框架?像jQuery UI或手機等。 – asifrc

回答

5

jQuery Mobile隱藏按鈕時出現問題,因爲框架將按鈕包裝在一個樣式化的div中,隱藏按鈕(即,您試圖隱藏已經隱藏的按鈕)。這個問題已經解決了這個問題:jquery mobile cannot hide submit button

這將暗示,像$('.cHide').closest('.ui-btn').hide();應該爲你工作。試一試,讓我知道它是否工作:)

+0

是的,它的作品!謝謝!! :D – yvonnezoe

0

什麼隱藏需要做的是設置樣式顯示屬性設置爲無。執行你的代碼和一個debbuger工具(如chrome開發工具)檢查該元素,看看該屬性是否設置在按鈕上

-1

嘗試並使用其ID隱藏按鈕。 $(「#monitor」)。hide()

+0

謝謝,但嘗試過;)不工作。 – yvonnezoe