【问题标题】:Selecting elements in jQuery在 jQuery 中选择元素
【发布时间】:2009-09-14 10:35:34
【问题描述】:

作为question at this link 的延续,我想在 test.html 中添加一些功能
事件触发器是“点击”任何

标记。 单击后,我希望那个特定的

消失(这很简单)但是我也想要那个

  1. 如果三个中的一个或两个

    被隐藏,则“Hide 'em”按钮应与“Show 'em”一起“显示”但是

  2. 如果所有

    都被隐藏,那么“Hide 'em”也应该被隐藏 And

  3. 当所有

    都可见时,“Show 'em”应该被隐藏。

我试图用我对 jQuery 选择器的知识和可用的选择器文档来解决这个问题,但没有达到我想要的任何地方。这是我到目前为止所做的。

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

    });

但是,此代码不会在所有

隐藏

的极端条件下选择性地切换

【问题讨论】:

  • 我在问题中添加了我到目前为止所做的事情

标签: javascript jquery show-hide


【解决方案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()
}

【讨论】:

  • 在哪里使用 resetButtons()?
  • 您可以从“显示他们”按钮中调用它。 $('.shower').click(resetButtons)
  • 不知何故不起作用。一会儿我再去看看,一会儿再回复一下……谢谢!
  • 谢谢!有用!刚开始接触 jQuery 的时候,我真的没有意识到我可以这么自然地将标准的 Javascript 集成到 jQuery 中!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 2017-04-05
  • 1970-01-01
相关资源
最近更新 更多