【问题标题】:highlight and remove highlight the div on click javascript突出显示并删除单击 javascript 时突出显示 div
【发布时间】:2020-11-12 19:22:33
【问题描述】:

我的 Rails 应用中有以下代码

<% @tasks.each do |t| %>
<div class="divs" data-slide-block-id="#task-drawer">
<div class="col-md-6 col-xs-3">
   <h5 class="pd0">
    <%= completed.nil? ? '' : '<i class="taskedit_completed_icon fa fa-check text-success icon mr-5"></i>'.html_safe %>
    <%= t["item"]%>
   </h5>
</div>
<div class="col-md-2 col-xs-3">
   <h5 class="pd0">
     <%= @stages.select{|s| s["id"] == t["stage_id"]}.map{ |s| s["name"] }.first || "n/a" %>
   </h5>
</div>
<div class="col-md-2 col-xs-3" style="margin-left:40px;">
   <h5 class="pd0" style="font-size: 18px; color: #337ab7; font-weight: bold;">
       &#x3e;
   </h5>
</div>
</div>
<% end %>

我想在单击 div 时突出显示它,并在再次单击它时取消突出显示。我有以下 javascript。

<style>
.color {
    background-color: yellow;
}
</style>

 <script>
   var addclasss = 'color';
   var $cols = $('.divs').click(function(e) {
       $cols.removeClass(addclasss);
       $(this).addClass(addclasss);
 });

 </script>

当我单击 div 时,它会突出显示,并且会显示任务抽屉。但是通过第二次单击我无法取消突出显示它但任务抽屉消失了。我必须再次单击才能取消突出显示。但是通过第三次单击再次显示任务抽屉。我想在任务抽屉消失时取消突出显示 div .我该如何解决这个问题?我附上了屏幕截图。

【问题讨论】:

  • 你用toggle函数试过了吗
  • @RohitAmbre 我试过了。但在我的情况下它不起作用

标签: javascript html ruby-on-rails highlight


【解决方案1】:

你可以使用.toggleClass('color'):

$(function() {
    $('#example').on('click', function() {
        $(this).toggleClass('color');
    });
});
#example {
    border: solid 1px black;
    padding: 20px;
}

.color {
    background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="example">Hello World</div>

【讨论】:

  • 我以前试过这个。但它不适用于我的情况
  • 再仔细看看你的代码,我想你想做:$cols.not(this).removeClass(addclasss); $(this).toggleClass(addclasss);
猜你喜欢
  • 2012-09-28
  • 2013-05-20
  • 2011-06-11
  • 2011-09-04
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
相关资源
最近更新 更多