0

カテゴリに基づいて YouTube 動画を表示するアプリケーションを構築しようとしています。ユーザーにはカテゴリのドロップダウンが表示され、カテゴリを選択します。div 'rContent' には、そのカテゴリのリンクのリストが取り込まれます。ユーザーがリンクの 1 つをクリックすると、YouTube ビデオが iframe で開きます。問題は、ユーザーがリンクをクリックすると、Firefox ではビデオが表示されますが、Chrome では機能しません。何も起こりません。

<!-- Dynamically retrieved list of videos shown here, see sample below -->
<div id="rContent"></div>             

<!-- YouTube video will be shown in this iframe-->
<div class="video-container">
    <iframe id="userVideo" src="" frameborder="0" width="560" height="315"></iframe>
</div>

<script>    
$("#rContent").on('click', '.vid_trigger', function() {
    var URL = $(this).attr('href'); 
    $(userVideo).attr('src',URL)
    return false;   
});
</script>

<!--- sample of dynamic content -->
<a class="vid_trigger" href="http://www.youtube.com/embed/fgqpHl5OGFA?rel=&autoplay=1"> … </a><br></br>
<a class="vid_trigger" href="http://www.youtube.com/embed/c-d4rDY70zk?rel=&autoplay=1"> … </a><br></br>
4

3 に答える 3

0

preventDefault を試したことがありますか? リンクをクリックしたときのデフォルトの動作である preventDefault を使用する必要があります。

また、リンクは div #rContent 内にあってはなりませんか? .on を使用しているため、リンクは親の中にある必要があります。

于 2013-07-27T03:26:50.947 に答える
0
<!-- Dynamically retrieved list of videos shown here -->
<div id="rContent">
    <a class="vid_trigger" href="http://www.youtube.com/embed/fgqpHl5OGFA?rel=&autoplay=1"> … </a><br></br>
    <a class="vid_trigger" href="http://www.youtube.com/embed/c-d4rDY70zk?rel=&autoplay=1"> … </a><br></br>
</div>             

<!-- YouTube video will be shown in this iframe-->
<div class="video-container">
    <iframe id="userVideo" src="" frameborder="0" width="560" height="315"></iframe>
</div>

<!-- script must be placed after DOM elements -->
<script type="text/javascript">    
    $("#rContent").on('click', '.vid_trigger', function() {
        $('#userVideo').prop('src', this.href)
        return false;   
    });
</script>

フィドル

于 2013-07-27T03:30:36.437 に答える
0

この行

$(userVideo).attr('src',URL)

次のようになります。

$('#userVideo').attr('src', URL); //select using id selector
于 2013-07-27T03:31:38.800 に答える