0

サイトに Vimeo iframe の配列があり、更新時に配列からランダムに呼び出されます。これらの iframe にはそれぞれ固有の ID があります。

私が求めているのは、表示される iframe に応じて、ID を認識し、メニュー項目にクラスを追加することです。

これまでのところ、私はこれを持っています:

$("#yuan-photofilm").find(".menu-nav li ul li a").addClass('active-vimeo');

私の考えでは、#yuan-photofilm存在する場合はクラスを見つけ.menu-nav li ul li aて追加します.active-vimeoが、うまくいかないようです。

何か案は?

ありがとう、R

ここにHTMLの一部があります

<div class="grid_7 suffix_5">
        <div class="video-container">
            <iframe id="jack-photofilm" src="http://player.vimeo.com/video/46822673?title=0&amp;portrait=0&amp;byline=0&amp;color=ffffff" width="650" height="366" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>   </div>
</div>
<div class="clear"></div>
    <div class="grid_7">
        <ul class="menu-nav">
            <li class="current-menu-nav-item"><a href="index.php">Photofilms</a>
                <ul>
                    <li><a href="#yuan" id="yuan">Yuan Shuai</a></li>
                    <li><a href="#nina" id="nina">Nina</a></li>
                    <li><a href="#zhuoer" id="zhuoer">Zhuoer</a></li>
                    <li><a href="#qingqing" id="qingqing">Uncle Douglas and Qingqing</a></li>
                    <li><a href="#jack" id="jack">Jack</a></li>
                </ul>   
            </li>
            <li><a href="still.php">Photographs</a></li>
            <li class="sub-info-menu"><a href="information.php">Information</a></li>
            <li><a href="http://blog.youziproject.com">Blog</a></li>
        </ul>
    </div>
4

2 に答える 2

1

各要素にはIDがあるようですが、それをターゲットにしないのはなぜですか?

if ($("#yuan-photofilm").length) {
   $("#yuan").addClass('active-vimeo');
}

またはより動的:

$('.menu-nav li ul li a').each(function(i,e) {
    if ($('#'+e.id+'-photofilm').length) $(e).addClass('active-vimeo');
});
于 2012-08-24T11:02:01.863 に答える
0

誰もがjQueryセレクターのポイントを見逃していると思います。使用するだけです:

$("#yuan-photofilm .menu-nav li ul li a").addClass('active-vimeo');

#yuan-photofilm存在しない場合、セレクターは失敗し、クラスは追加されません。これはhttp://jsfiddle.net/LtwW5/で見ることができます

編集済み

HTMLを見た後、これを次のいずれかに変更できます。

$("#yuan-photofilm").addClass('active-vimeo');
$(".menu-nav li ul li a#yuan-photofilm").addClass('active-vimeo');

構造をどの程度厳密にしたいかに応じて(たとえば、#yuan-photofilm他の場所で発生する場合は2番目を使用します。これは、IDであるため、そうすべきではありませんが、生成されたコードでは常にそうであるとは限りません)

于 2012-08-24T11:10:09.610 に答える