1

背景情報: SoundCloud の HTML5 ウィジェットを自分のフォーラムに埋め込む方法を設定しています。ウィジェット自体は、その高さに応じてコンテンツを調整します。以下の jsFiddle の例でわかるように、ウィジェットにカーソルを合わせると、高さが 166px から 450px に拡張され、ウィジェットがコンテンツを調整するように設定されています。

私が修正しようとしている問題は、セット/プレイリストの一部であるかどうかに関係なく、すべての SoundCloud ウィジェットが展開されることです。セット/プレイリストの一部ではない場合、カーソルを合わせると大きな空白の領域が表示されます。

サウンドがセット/プレイリストの一部である場合、URL に /sets/ が含まれていることに気付きました。その文字列の URL をチェックするようにスクリプトを変更しようとしています。見つかった場合は、ホバーしたときにウィジェットを展開できるようにします。そうでない場合は、ホバーしたときに展開できないようにします。

現在、私は障害物にいます。それは機能しますが、検索では、必要な文字列ではなく、行内の位置が返されます。それを示すために、少しコードを追加しました。

http://jsfiddle.net/TYWUf/11/

追加コードなしの JS:

jQuery(document).ready(function () {

    var soundSrc = $(".soundCloudEmbed").attr("src");
    var isSet = (soundSrc).search('%' + '2Fsets' + '%' + '2F');

    $(".soundCloudEmbed").hover(
        function () {
            $(this).addClass("soundCloudHover");
        }, function () {
            $(this).removeClass("soundCloudHover");
    });
});

(この質問を正しく聞いていない場合は、お知らせください)

4

2 に答える 2

3

これをチェックしてください、私はそれがあなたが探しているものだと思います:

http://jsfiddle.net/dSX5g/

jQuery(document).ready(function () {

    $('.soundCloudEmbed').each(function () {
        var soundSrc = $(this).attr("src");
        var isSet = (soundSrc).search('%' + '2Fsets' + '%' + '2F');

        if (isSet > -1) {
            $(this).hover(function () {
                $(this).addClass("soundCloudHover");
            }, function () {
                $(this).removeClass("soundCloudHover");
            });
        }
    });

});

各埋め込みアイテムは個別に評価する必要があります。

于 2013-07-09T20:09:12.830 に答える