2011-07-01 141 views
0

我確定我的代碼存在一些問題。我不知道如何混合原始的JavaScript與我的jQuery。這裏是我的js文件中的相關代碼:jQuery不按預期執行功能

$(document).ready(function() { 
    $('#show-video').click(function(event) { 
     jQuery('.player-hold').slideDown("slow"); 
     $('#book').slideDown('slow', function() { 
      playVideo(); 
     }); 
     jQuery('.features').slideUp("slow"); 
    }); 
}); 

function onPlayerStateChange(newState) { 
    if(newState == 0) { 
     jQuery('.player-hold').slideUp("slow"); 
     jQuery('.features').slideDown("slow"); 
    } 
} 

function playVideo() { 
    if (ytplayer) { 
     ytplayer.playVideo(); 
    } 
} 

function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById("ytPlayer"); 
    ytplayer.addEventListener("onStateChange", "onPlayerStateChange"); 
    ytplayer.setPlaybackQuality("highres"); 
    ytplayer.cueVideoById("PoTa2FTmDWk"); 
} 

基本上我有一個div的鏈接可查看視頻。當點擊鏈接時,會顯示視頻(以前不顯示任何內容),並且包含隱藏鏈接的div。這工作正常。最後一部分是視頻結束視頻滑動和div容器回來,這一切都有效。問題是,一旦顯示視頻,我想執行播放視頻。這不起作用。

我確定它是一個簡單的修復/ nooby錯誤。

PS。如果我刪除jQuery並添加函數playVideo();點擊錨點時,它按預期播放視頻,但失去滑動功能。

+0

只是一個小風格點:你應該堅持一個單一的方式來尋找JQuery對象。無論是'$'還是'jQuery'。 – nfechner

+0

你能發表一個工作代碼的例子嗎?它比'onclick =「playVideo();」'? –

+0

你在線「ytplayer.playVideo()」中收到控制檯錯誤嗎?該功能是否被調用?如果您使用FF,您可以打開JavaScript控制檯並檢查(我認爲它在工具菜單中),或者您可以安裝或使用Firebug。如果您使用Google Chrome,則可以在扳手 - >工具菜單中找到該控制檯。 – rav

回答

0

您在代碼中使用了$(jQuery(的奇數組合。你應該選擇一個或另一個。除非它與另一個庫衝突,所以首選$(。在衝突的情況下,只需jQuery(並使用noconflict()

+0

對不起,有些代碼是從我更新的實時網站上覆制而來的使用jQuery,因爲沒有衝突模式。 – Michael

+0

@Michael:不需要道歉。進行更改後,您的代碼的工作方式是否有所不同? –

+0

也許這就是問題所在,但我通過將原始js放入它自己的文件中來重構它。你可以在http://freecss.info/testing/上看到它的工作,有一個鏈接可以查看頁面上註冊按鈕旁邊的視頻。視頻幻燈片替換div,然後結束時滑出。 – Michael