我面临一个非常奇怪的问题。这是我的代码:
<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();
}
答案 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()