0

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

    <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。我想一首又一首地播放歌曲,而只显示正在播放的歌曲。

4

2 回答 2

0

如果您正在使用动态生成的类或任何对象,那么您不能直接使用该对象。对于这样的类和对象,您必须绑定事件。请在此处参考 JQuery 绑定。

于 2012-12-03T06:54:40.603 回答
0

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

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

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')元素将隐藏。

于 2012-12-03T10:38:50.380 回答