Javascript jQuery-.removeClass不';行不通

Javascript jQuery-.removeClass不';行不通,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个按钮test和一个div <div class="subsystem subhide"> <h3 style="text-align: center; font-size: 30px; font-weight: normal;">Electronics</h3> <p>Lorem</p> </div> 我试图使用的jQuery代码是 jQuery('#subs1').on('click', function

我有一个按钮
test
和一个div

<div class="subsystem subhide">
  <h3 style="text-align: center; font-size: 30px; font-weight: normal;">Electronics</h3>
  <p>Lorem</p>
</div>
我试图使用的jQuery代码是

jQuery('#subs1').on('click', function(){
jQuery('.subsystem').removeClass('subhide');
});
当点击按钮时,什么都没有发生,这是为什么


提前谢谢

问题在于
jQuery('#subs1')
查找具有该id的元素并绑定到它们。如果元素在绑定时没有id,则不会处理事件

连接到DOM就绪 要解决此问题,请在documentready上用
包装代码,这样,只有当dom(文档)就绪时,代码才会执行

在文档“就绪”之前,页面无法安全操作。jQuery会为您检测这种就绪状态。$(document).ready()中包含的代码只有在页面文档对象模型(DOM)准备好让JavaScript代码执行后才会运行

更好的方法 另一方面,如果您的按钮是动态添加的,那么当事件侦听器想要绑定时,它将不在那里,因此代码实际上什么也不做。要解决此问题,请将代码更改为以下内容:

jQuery(document.body).on('click', '#subs1', function() {
    jQuery('.subsystem').removeClass('subhide');
});
此事件将附加到始终位于DOM树中的
document.body
。现在,当单击主体时,事件将传播到
#subs1
,而不管按钮何时连接到DOM

工作片段 以下是一个工作示例:

$(文档).ready(函数(){
jQuery(document.body).on('click','#subs1',function(){
jQuery('.subsystem').removeClass('subside');
});
jQuery(document.body).on('click','#subs2',function(){
jQuery('.subsystem').addClass('subside');
});
});
.subside{
显示:无;
}

解开
隐藏
数码产品
洛勒姆

jQuery('#subs1')。在('click',function()上{
jQuery('.subsystem').removeClass('subside');
});
jQuery('#toggle')。打开('click',function(){
jQuery('.subsystem').toggle('subside');
});
.subside{
显示:无;
}

数码产品
洛勒姆

按钮 切换按钮
试试:

    $( document ).ready(function() {
      $('#subs1').on('click', function(){
          $('body').find('.subhide').removeClass('subhide');
      });
   });

如果使用chrome,请清除浏览器缓存。

在样式表中,将其更改为:

.subsystem.subhide{

显示:无;

}

.subsystem{

显示:任何内容;

}


它应该可以工作

我不确定为什么,但这个片段可以工作:

jQuery( document ).ready(function() {
 jQuery('#subs1')
  .click(function(){
  jQuery('body').find('.subsystem').addClass('subhide')})
});

您是否可以检查错误并创建演示?子系统的作用是什么?请添加子系统CSS您是否包括jquery库?工作您的jquery版本是什么。由于1.7I不同意这一点,因此引入了on,对于规范定义的div,默认值为
display:block
。不应添加冗余代码。另外,也没有必要增加类的特殊性
。subhide
就足够了。“display:anything;”不是有效的CSS。属性“display”没有“anything”选项。仅供参考;)谢谢,但还是不行。如果我将您的代码复制到JSFIDLE中,它会工作,但在我的网站上不会。我知道jQuery可以工作,因为还有其他一些函数可以使用它。“我想我在这件事上运气不好。”“跳伞者”如果你能链接一个片段,也许我能帮上更多的忙。(关于要点或某事)。屏幕上的按钮是否从第一次加载开始?或者它是动态添加的?其实没什么,js代码在工作js代码下面,css代码在工作css代码下面,div在结束标记之前。没有其他包装或附加功能。@Skydiver请尝试我的更新答案,我相信它会解决您的问题。不,仍然不起作用。我真的完全没有想法了,这一定是一些基本的东西,与我猜的代码无关。
jQuery( document ).ready(function() {
 jQuery('#subs1')
  .click(function(){
  jQuery('body').find('.subsystem').addClass('subhide')})
});