我創建了一個WordPress主題。 當我使用ajax加載內容時,它不會將MediaElements.js應用於我的音頻播放器,因此音頻不會顯示。我認爲這是因爲MediaElement.js加載了wp-footer(),並且此新音頻在添加到DOM之後,並且MediaElement.js無法識別。當通過Ajax,MediaElement.js加載內容時,WORDPRESS音頻播放器未加載
與本地視頻相同的情況。
我該如何解決這個問題?
我創建了一個WordPress主題。 當我使用ajax加載內容時,它不會將MediaElements.js應用於我的音頻播放器,因此音頻不會顯示。我認爲這是因爲MediaElement.js加載了wp-footer(),並且此新音頻在添加到DOM之後,並且MediaElement.js無法識別。當通過Ajax,MediaElement.js加載內容時,WORDPRESS音頻播放器未加載
與本地視頻相同的情況。
我該如何解決這個問題?
您需要重新實例化新添加的元素上的MediaElement
對象。可以使用Observer
來觀看和應用。
jQuery的( '視頻,音頻')mediaelementplayer({ alwaysShowControls:真, 特徵:[ 'playpause'], audioVolume: '水平', audioWidth:400, audioHeight:120 })。 –
我嘗試過,但不起作用。 –
我排隊我的腳本是這樣的:wp_enqueue_script('lateral',get_template_directory_uri()。'/ js/lateral-ajax.js',數組('jquery','wp-mediaelement'),true); –
我發現,這解決了大多數情況下:
首先,您需要確保腳本正在對所有頁面(即,甚至不包含媒體的那些)加載mediaelement.js。
的functions.php(或類似)
add_action('wp_enqueue_scripts', function() {
wp_enqueue_style('wp-mediaelement');
}, 100);
然後,它應該僅僅是一旦你的AJAX內容已被注入到頁面中的JS調用此的情況下
main.js(或無論何地)
$(window.wp.mediaelement.initialize);
我很高興看到你的問題!我在尋找一個小問題的幫助,但這基本上是我正在努力解決的精確的整體問題。感謝您提出這個問題,並感謝下面的答案! – rinogo