如何在jquery中监听具有特定元素的元素是show()还是hide()?

时间:2017-03-30 14:42:22

标签: javascript jquery css

我在页面上有许多元素,默认情况下是隐藏的。根据用户行为,可能会显示一个(使用jquery' show())。类似的,可能会隐藏一个(使用jquery' hide())。

所有这些元素都具有相同的css类。有没有办法为具有特定类的元素创建一个监听器,以查看它们是否在hide / show之间发生了任何变化?

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用:visible:hidden。这里有更多信息https://api.jquery.com/visible-selector/https://api.jquery.com/hidden-selector/

var $foo = $('.foo');

$foo.first().hide();

$('.foo').each(function() {
  console.log($(this).is(":visible"));
  console.log($(this).is(":hidden"));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="foo">foo</div>
<div class="foo">foo</div>

答案 1 :(得分:0)

要直接回答您的问题,不会有内置方式,但我们可以通过自定义ContextMenu<MenuItem x:Name="UndoProcessMenuITem" Header="Undo Process" Click="UndoProcessMenuITem_Click" > <MenuItem.Visibility> <MultiBinding Converter="{StaticResource RowUndoButtonVisibility}"> <Binding Path="{Binding PlacementTarget.DataContext.ProductIsStandby, RelativeSource={RelativeSource AncestorType=ContextMenu}}" /> <Binding Path="{Binding PlacementTarget.DataContext.ProductIsDone, RelativeSource={RelativeSource AncestorType=ContextMenu}}" /> </MultiBinding> </MenuItem.Visibility> </MenuItem> 来实现此目的。

.on
.trigger