在jQuery中选择元素

时间:2009-09-14 10:35:34

标签: javascript jquery show-hide

继续question at this link我想在test.html中添加一些功能 事件触发器是“点击”任何< p class =“”>标签。 点击后我想要那个特别的< p>消失(这是相当简单的)但是我也想要那个

  1. 如果三个中的一个或两个< p>被隐藏,然后“隐藏”按钮应该“显示”以及“显示'em”但是
  2. 如果全部< p>隐藏然后“隐藏他们”也应该隐藏
  3. 当所有< p>可见,然后“显示'em”应该隐藏。
  4. 我尝试了解jQuery选择器和选择器文档的知识,但没有达到我想要的任何地方。这就是我到目前为止所做的。

    $('p.*').live('click', function() {
            $(this).hide('slow');
            if( $('p').is(':hidden') ) {
                $('.shower').show();
            }
            if( $('p.*').is(':hidden') ) {
                $('.hider').show();
            }
    
        });
    

    但是,此代码不会在所有< p>的极端条件下有选择地切换。隐藏

1 个答案:

答案 0 :(得分:1)

这是一种方法

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()
}