2012-12-03 24 views
1

這是在WordPress上使用簡碼的代碼。功能非常自我解釋:這是一個簡單的視頻庫 - 點擊播放列表框將主視頻div的html替換爲其中一個隱藏div的內容。返回False並非總是阻止事件

HTML

<div class="main-video"> 
    <iframe src="http://player.vimeo.com/video/50781537" frameborder="0" width="630" height="400"></iframe> 
</div> 

    <div id="video-playlist-wrapper"> 
    <ul class="video-playlist"> 

    <a href="#"><li><div class="playlist-video-wrapper"><div class="playlist-video-title">Title 1</div><div id="playlist-video1">Desc 1</div></div></li></a> 
    <a href="#"><li><div class="playlist-video-wrapper"><div class="playlist-video-title">Title 2</div><div id="playlist-video2">Desc 2</div></div></li></a> 
    <a href="#"><li><div class="playlist-video-wrapper"><div class="playlist-video-title">Title 3</div><div id="playlist-video3">Desc 3</div></div></li></a> 
    <a href="#"><li><div class="playlist-video-wrapper-last"><div class="playlist-video-title">Title 4</div><div id="playlist-video4">Desc 4</div></div></li></a> 
    </ul> 
    </div> 

    <div id="playlist-video1-content" class="hidden-video"><iframe src="http://player.vimeo.com/video/50781537" frameborder="0" width="630" height="354"></iframe></div> 
    <div id="playlist-video2-content" class="hidden-video"><iframe src="http://player.vimeo.com/video/50697289" frameborder="0" width="215" height="130"></iframe></div> 
    <div id="playlist-video3-content" class="hidden-video"><iframe src="http://player.vimeo.com/video/50771550" frameborder="0" width="215" height="130"></iframe></div> 
    <div id="playlist-video4-content" class="hidden-video"><iframe src="http://player.vimeo.com/video/50750012" frameborder="0" width="215" height="130"></iframe></div> 



    </div> 

JQuery的

jQuery(document).ready(function($) { 

    $('#playlist-video1').click(function() { 
    $('.main-video').html($('#playlist-video1-content').html()); 
    return false; 
    }); 

    $('#playlist-video2').click(function() {  
    $('.main-video').html($('#playlist-video2-content').html()); 
    return false; 
    }); 

    $('#playlist-video3').click(function() {  
    $('.main-video').html($('#playlist-video3-content').html()); 
    return false; 
    }); 

    $('#playlist-video4').click(function() { 
    $('.main-video').html($('#playlist-video4-content').html()); 
    return false; 
    }); 

    }); 

問題:有時鏈接事件仍然發生,並在href重新加載頁面=「#」導致跳轉到頁面的頂部,該html不會被替換。其他時候,它工作正常,主視頻更新播放列表視頻之一。

這是怎麼發生的?我反覆查看了代碼,找不到任何錯誤或問題。當我用xampp在本地開發這一切時,一切正常,沒有問題。現在在WordPress網站上,它正在打破。

是否有可能該頁面已經加載了太多的jquery,並且它正在加載視頻庫jquery太長。任何幫助感謝!謝謝。

這裏是一個小提琴:http://jsfiddle.net/xjpv2/1/`

+1

您的示例已損壞:Vimeo有一條錯誤消息,指出視頻不允許嵌入。 – Cymen

+0

對不起,應該注意到,我知道他們不顯示在小提琴上,因爲它不是允許的嵌入域之一。在我的網站上很好。 –

回答

1

舊的文章我做了一段時間後,但想我會回答它的種類以防萬一有人遇到同樣的問題。

我從頭開始:

jQuery(document).ready(function(cash) { 
    jQuery('.video-playlist a').click(function(e) { 
    jQuery('#main-video-iframe').attr('src', jQuery(this).attr('data-url')); 
    return false; 
}); 

});

和我的HTML(#VIMEO嵌入視頻後僅僅是視頻的ID):

 <div class="main-video"> 
     <iframe src="http://player.vimeo.com/video/#" id="main-video-iframe"></iframe> 
    </div> 

<div id="video-playlist-wrapper"> 
    <ul class="video-playlist"> 
     <li> 
      <a href="#" data-url="http://player.vimeo.com/video/#"> 
       <div class="playlist-video-wrapper"></div> 
      </a> 
     </li> 
    </ul> 
</div> 

不好意思承認我掙扎在這一個,但我希望它能幫助別人的道路。

0

替換:

$('#playlist-video1').click(function() { 
    $('.main-video').html($('#playlist-video1-content').html()); 
    return false; 
}); 

有了:

$('#playlist-video1').click(function(e) { 
    e.preventDefault(); 
    $('.main-video').html($('#playlist-video1-content').html()); 
});