我想通过使用动态生成的类来显示hide元素

时间:2012-12-03 06:46:57

标签: jquery soundmanager2

我希望显示/隐藏其子元素中的类的父元素。 这就是我想要的。

    <p><a href="<?php echo site_url('mp3/coins.mp3');?>" title="hello" class="sm2_button" id="song1">play</a> Dear Yesterdays </p>
    <p><a href="<?php echo site_url('mp3/fancy-beer-bottle-pop.mp3');?>" title="hello" class="sm2_button" id="song2">play</a> song 2</p>
    <p><a href="<?php echo site_url('mp3/coins.mp3');?>" title="hello" class="sm2_button" id="song1">play</a> Dear Yesterdays </p>
    <p><a href="<?php echo site_url('mp3/fancy-beer-bottle-pop.mp3');?>" title="hello" class="sm2_button" id="song2">play</a> song 2</p>

       <script>
    $(document).ready(function(){
    $('.play p').hide();
        $('.play p:first').show();
    $('.play p a').each(function(){
    var attr = $(this).attr('class');
    var cls = attr.split(' ');  
    if(cls[1]=='sm2_playing' || cls[1]=='sm2_paused')
    {
        // display none to all .play p tags except the one with those classes sm2_playing or sm2_paused
        }
    });



    });
    </script>

请帮帮我。 我正在使用soundmanager2。我想一个接一个地播放歌曲,只显示播放的歌曲。

2 个答案:

答案 0 :(得分:0)

如果您使用动态生成类或任何对象,则无法直接使用该对象。对于此类和对象,您必须绑定事件。请参考JQuery bind here

答案 1 :(得分:0)

jQuery不会为将来的对象做你想做的事。

您可以简单地将show()hide()与CSS结合使用,而不是使用addClass() / removeClass()

<强> CSS

.play p
{
    display: none;
}

.play p.sm2_playing, .play p.sm2_paused
{
    display: block;
}

然后,当您执行$(this).addClass('sm2_playing')元素时,元素将显示,$(this).removeClass('sm2_playing sm2_paused')元素将隐藏。