【发布时间】:2017-01-27 14:21:21
【问题描述】:
我正在开发一个基于过滤器显示和隐藏元素的页面——也就是说,根据条件将列表项设置为display:block 或display:none——我想在 没有项目显示(例如“抱歉,没有符合您的条件的元素”。)如果我的列表如下所示:
<ul class="list">
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
我已经基于此SO thread 尝试了以下change 函数:
$("body").on('change', function() {
if ($('.list').children(':visible').length == 0) {
console.log('none visible');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list">
<li class="item">Item 1</li>
<li class="item">Item 2</li>
<li class="item">Item 3</li>
</ul>
但它似乎不起作用?非常感谢这里的任何帮助。
【问题讨论】:
-
我认为没有什么会触发您的事件侦听器。身体什么时候发生变化?我想你想在页面加载时显示它,所以只需删除
$("body").on('change', function() {包装器。 -
@karacsi_maci 我正在使用事件侦听器,因为
.list中的项目正在针对不同的选择进行动态过滤(设置为display:none或display:block)... -
如果列表选项全部隐藏,更改事件将如何触发?
-
是的,我明白了,但是当
body变了??? -
如果它应该在过滤器更改时触发,我们需要查看过滤器。或者,我们需要知道分配给过滤器的类以及它们的输入类型。
标签: javascript jquery