在jQuery中选择元素
在此链接的问题的继续中,我想在test.html中添加一些function
事件触发器是“点击”任何
标记。 点击之后,我希望特定的
消失(这是相当简单的), 但我也想要
- 如果隐藏了三个中的一个或两个
,那么“隐藏它们”按钮应该“显示”以及“显示它们” 但是
- 如果所有
都被隐藏,那么“隐藏它们”也应该隐藏起来
- 当所有
都可见时,“Show’em”应该被隐藏。
我试着用我对jQuery选择器和选择器文档的知识来解决这个问题,但是没有达到我想要的任何地方。 这就是我到目前为止所做的。
$('p.*').live('click', function() { $(this).hide('slow'); if( $('p').is(':hidden') ) { $('.shower').show(); } if( $('p.*').is(':hidden') ) { $('.hider').show(); } });
但是,此代码不会在所有
隐藏的极端条件下有选择地切换
这是一种方法
var all_ps = $('p.*').length; var hidden_ps = 0; $('p.*').live('click', function() { $(this).hide('slow'); hidden_ps++; updateButtons(); }); function updateButtons() { $('.hider').show(); $('.shower').show(); if(hidden_ps == all_ps-1) { $('.hider').hide(); } else if(hidden_ps == 0) { $('.shower').hide(); } } function resetButtons() { $('p.*').show(); hidden_ps = 0; updateButtons() }