2016-01-20 55 views
1

我創建了一個WordPress主題。 當我使用ajax加載內容時,它不會將MediaElements.js應用於我的音頻播放器,因此音頻不會顯示。我認爲這是因爲MediaElement.js加載了wp-footer(),並且此新音頻在添加到DOM之後,並且MediaElement.js無法識別。當通過Ajax,MediaElement.js加載內容時,WORDPRESS音頻播放器未加載

與本地視頻相同的情況。

我該如何解決這個問題?

+0

我很高興看到你的問題!我在尋找一個小問題的幫助,但這基本上是我正在努力解決的精確的整體問題。感謝您提出這個問題,並感謝下面的答案! – rinogo

回答

3

您需要重新實例化新添加的元素上的MediaElement對象。可以使用Observer來觀看和應用。

+0

jQuery的( '視頻,音頻')mediaelementplayer({ alwaysShowControls:真, 特徵:[ 'playpause'], audioVolume: '水平', audioWidth:400, audioHeight:120 })。 –

+0

我嘗試過,但不起作用。 –

+0

我排隊我的腳本是這樣的:wp_enqueue_script('lateral',get_template_directory_uri()。'/ js/lateral-ajax.js',數組('jquery','wp-mediaelement'),true); –

0

我發現,這解決了大多數情況下:

首先,您需要確保腳本正在對所有頁面(即,甚至不包含媒體的那些)加載mediaelement.js。

的functions.php(或類似)

add_action('wp_enqueue_scripts', function() { 
    wp_enqueue_style('wp-mediaelement'); 
}, 100); 

然後,它應該僅僅是一旦你的AJAX內容已被注入到頁面中的JS調用此的情況下

main.js(或無論何地)

$(window.wp.mediaelement.initialize); 
相關問題