2013-05-15 2 views
1

나는 매우 이상한 문제에 직면 해있다. ?jQuery (모바일) : 숨어 있지 않은 버튼

<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 테이블 헤더 monitor? 같은 클래스 .cHide을 가지고하고 '제거로`: 여기 내 코드입니다. 그러나이 호출 될 때 :

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

monitor?remove? 열은 숨겨져 있지만 monitor 버튼이 아직도있다. 그 이유는 무엇입니까? 뭐가 문제 야?

EDIT : 독립형이라면 제대로 작동하는 것처럼 보입니다. 나는 그것이

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

어딘가에 있기 때문에 그것이 될 것이라고 생각 하는가?

여기에 내가 숨기고합니다 (document.ready에있는) .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(); 


        } 
+0

'$ (".CHide")'값을 디버거로 확인 했습니까? 지금까지 코드는 좋아 보인다. – Jan

+1

코드가 잘 작동합니다 - http://jsfiddle.net/JY2ub/. 이 문제를 일으킬만한 문제가 아닙니다. – lifetimes

+0

어떤 UI 프레임 워크를 사용하고 있습니까? jQuery UI 또는 모바일 등. – asifrc

답변

5

jQuery Mobile은 스타일이 지정된 div에 단추를 래핑하므로 단추를 숨기는 데 문제가있었습니다. 버튼을 숨 깁니다 (즉, 이미 숨겨진 버튼을 숨기려고합니다). 이 문제는이 질문으로 처리되었습니다 : $('.cHide').closest('.ui-btn').hide();과 같은 것이 좋습니다. jquery mobile cannot hide submit button

시도해보고 작동하는지 알려주세요. :)

+0

예! 작동합니다! 고맙습니다!! : D – yvonnezoe

0

입니다. 코드를 실행하고 debbuger 도구 (예 : chrome dev 도구)를 사용하여 요소를 검사하고 해당 속성이 버튼에 설정되어 있는지 확인하십시오.

-1

ID를 사용하여 버튼을 숨기려고 시도합니다.

+0

고맙지 만 시도했지만;) 작동하지 않습니다. – yvonnezoe

관련 문제