Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除已单击控件上的特定类?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何删除已单击控件上的特定类?

Javascript 如何删除已单击控件上的特定类?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图删除单击控件上的特定类,特别是我有以下html结构: <div id="resource"> <div class="selected"></div> <div class="selected"></div> </div> 这是css类: .selected { background-color: red; } 如何查看我是否单击某个div该类被正确添加,但如果我有一个具有类的div。已选择的类已设置

我试图删除单击控件上的特定类,特别是我有以下html结构:

<div id="resource">
   <div class="selected"></div>
   <div class="selected"></div>
</div>
这是css类:

.selected {
 background-color: red;
}
如何查看我是否单击某个div该类被正确添加,但如果我有一个具有
类的div。已选择的
类已设置,并单击没有该类的div,则代码不会删除其他div的类。为什么


这是。

您的单击事件仅适用于所选的
类。您应该使用
#资源div
单击,而不是
。选择的
。试着像下面这样

$(document).on('click', '#resource div', function() {
   if ($(this).hasClass('selected')) {
       $(this).removeClass('selected');
   } else
   {
      $('#resource .selected').removeClass('selected'); 
      $(this).addClass('selected');
   }
});

$(文档).on('单击','.container',函数(){
$(this.toggleClass('selected');
})
将您的“所选”div类名更改为“container”或watu。
为那些具有“container”的div添加click listener,或者为tat div指定任何名称

您可以通过添加一个额外的类来简化此过程。看这个。错误是所选类被删除。这意味着您的单击事件也将被删除。使用两个类可以解决这个问题

Javascript

$(document).on('click', '.item', function() {
   $('.item').removeClass('selected');
   $(this).addClass('selected'); //add class to the clicked control
});
Html

<div id="resource">
   <div class="item">test</div>
   <div class="item">test</div>
</div>

测试
测试

else将永远不会执行,因为一旦单击带有所选类的div,该类将被删除。第二次单击它将不会运行jQuery,因为它绑定到所选类?
$(document).on('click', '.item', function() {
   $('.item').removeClass('selected');
   $(this).addClass('selected'); //add class to the clicked control
});
<div id="resource">
   <div class="item">test</div>
   <div class="item">test</div>
</div>