0

tumblr でこの問題について知っています。コードが取り除かれ、オーディオ プレーヤーが壊れています。

現在flexslider.jsを使用していますが、問題はほとんど同じです。これで直りました

    setTimeout(function() {                        
                $('.audio').each(function(){
                    var audioID = $(this).parent().attr("id");
                    var $audioPost = $(this);
                    $.ajax({
                        url: '/api/read/json?id=' + audioID,
                        dataType: 'jsonp',
                        timeout: 50000,
                        success: function(data){
                            if ($audioPost.html().indexOf("is required to") != -1) {
                            $audioPost.append('<div style=\"background-color:black;">' + data.posts[0]['audio-player'] +'</div>');
                                }
                            }
                    });
                });
            }, 2000);

とにかく、私はモバイル版からコーディングを始めたので、これを見るにはブラウザー ウィンドウのサイズを変更する必要があります...パーマリンク ページhttp://tmbeta.tumblr.com/post/21264072020では問題ないように見えますが、フォトセットの場合はそうではありません(flexslider を使用)とプレーヤーは同じページにありますhttp://tmbeta.tumblr.com/

プレーヤーが投稿の一番下に追加されているのがわかりますか? [音声を聞くには Flash 9 が必要です] というところに表示させたいです。基本的に .append の機能であることは知っていますが、jquery に詳しくないため、解決策を見つけるのに本当に苦労しています。

4

1 に答える 1

1

HTML を見ると、結果は驚くべきことではありません: append()class を持つ要素に をスコープしてaudioおり、それが<article>. divjQuery は、そのスコープの末尾 (記事の末尾) にnew を追加します。要素挿入のスコープを変更する必要があります。

  1. audio-playerの代わりにクラスの要素を反復するaudio、つまり

    $('.audio-player').each(function(){ … }
    

    これにより のスコープが変更thisされるため、投稿 ID を取得する行を調整して、要素の階層を検索する必要があります。つまり、

    var audioID = $(this).parents('.audio').attr('id');
    

    またはによって

  2. 適切なプレーヤー要素への要素挿入のスコープ、つまり

    $audioPost.find('.audio-player').append('<div style=\"background-color:black;">' + data.posts[0]['audio-player'] +'</div>');
    

    要素に追加するのではなく、その要素のspan内部を置き換えて、プレーヤーが Flash 警告を置き換えるようにする場合は、次のようにします。

    $audioPost.find('#audio_player_'+audioID).replaceWith('<div style=\"background-color:black;">' + data.posts[0]['audio-player'] +'</div>');
    

    代わりは。

チャットによる現場での試行錯誤の後に編集された回答。コメントスレッドは無視してください。

于 2012-05-03T08:45:33.480 に答える