JQuery混乱

时间:2016-08-09 11:29:40

标签: javascript jquery

我试图使用复选框和JQuery过滤日历上的事件,

$(document).ready(function () {
  $('.scrollable-menu :checkbox').click(function (){
    if ($('input:checkbox:checked').length) {
      $('.alert').hide();
      $('.more').hide();
    }
  })
});

这就是我现在所拥有的,我知道它并不多。这工作正常,但从这里我需要一些如何选择具有特定背景颜色的li.alerts

$('div[style~="backgroundColor: red;"]').show()

但每个事件都有不同的背景颜色,因此需要更改一些我在复选框名称中存储颜色的方式。我还需要脚本允许同时选中多个复选框

        {% for category in categories %}
            <li name="{{category.color}}"><input name="{{category.color}}" value="your_value" type="checkbox"><div style="color:#{{category.color}};">{{ category.name }}{{ category.color }}</div></li>
        {% endfor %}

1 个答案:

答案 0 :(得分:2)

而不是通过CSS样式选择(如果更改颜色会怎么样?)将一些特定的类应用于元素并使用它们。

$('.jobs.main').show();
$('.jobs.secundary').hide();
$('.meetings, .jobs').show();
[...]

使用类进行过滤的示例:

$(document).ready(function() {
  $('input[type="checkbox"]').change(function() {
    var filters = $('input[type="checkbox"]:checked');

    if (filters.length) {
      $('.event').hide();
      $('input[type="checkbox"]:checked').each(function() {
        $('.event.' + $(this).data('type')).show();
      });
    } else {
      $('.event').show();
    }
  });
})
.job {
  color: red;
}
.meeting {
  color: blue;
}
.job.meeting {
  color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="event meeting job">Job Meeting</div>
<div class="event job">Important job</div>
<div class="event meeting">Meeting with client</div>
<div class="event call">Call to client</div>
<hr/>Filter:
<br/>
<label>
  <input type="checkbox" data-type="job" />Jobs
</label>
<label>
  <input type="checkbox" data-type="call" />Calls
</label>
<label>
  <input type="checkbox" data-type="meeting" />Meetings
</label>