2013-08-19 56 views
2

我有一个使用mediaelement.js audioplayer插件的简单页面。正常加载时,播放器将正确连接并正常工作。但是,当页面通过ajax加载时,mediaelementplayer不会附加到音频标签。
我用这个代码调用通过AJAX和jQuery文件:mediaelement.js在通过ajax加载时失败

<html> 
<head> 
<link href="/test-vocabulary.css" rel="stylesheet" type="text/css"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 

<script> 
$(document).ready(function(){ 

    $(".ajax_vocab_link").click(function(evento){ 
    evento.preventDefault(); 
    var ajaxDivNum = $(this).attr('id').split('_')[1]; 
     var searchTerm = $(this).attr('title'); 
     $("#ajaxcontainer_"+ajaxDivNum).load("test-audioplayer-se.php", {chrisSearch: searchTerm} 
    ); 
    }); 

}) 
</script> 

</head> 
<body> 
<p><button class='ajax_vocab_link' id='ajaxlink_1' title='clothes'>Link to load ajax doc</button></p> 
<div class='ajax_vocab_container' id='ajaxcontainer_1'>This is div id ajaxcontainer_1</div> 

</body> 
</html> 

的audioplayer页:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> 
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> 

<!-- Audio Player CSS & Scripts --> 

    <script src="http://www.ingles23.com/audioplayer/js/mediaelement-and-player.min.js"></script> 
    <link rel="stylesheet" href="http://www.ingles23.com/audioplayer/css/style4.css" media="screen"> 

    <!-- end Audio Player CSS & Scripts --> 

<script> 
     $(document).ready(function() { 

         $('#audio-player-vocab0').mediaelementplayer({ 
       alwaysShowControls: true, 
       features: ['playpause'], 
       audioVolume: 'horizontal', 
       audioWidth: 400, 
       audioHeight: 120 
      }); 


    }); 
    </script> 



</head> 
<body> 



<div class='display_vocab_container' > 
<div class='display_vocab_text' > 
<div class='audio-player-slim'> 
<audio controls='controls' type='audio/mp3' src='/sound/mp3/i23-crear-frases-ingles-5.mp3' id='audio-player-vocab0'></audio> 
</div> 
</div> 
</div> 


</body> 
</html> 

我试过很多的组合,包括使用上,生活,成功和移动文件之间的css/js链接,但这些都使情况变得更糟。
我可以通过ajax加载时获取文件以附加medaielementplayer?

+0

也见https://stackoverflow.com/questions/34891421/wordpress-audio-player-not-loading-when-the-content-is-loaded-through-ajax-medi – rinogo

回答

1

尝试将mediaelementplayer()函数调用放入ajax成功函数中,这对我来说很有用。所以除非你想用.ajax代替.load,否则你需要将它作为加载函数的第二个参数传递。或者使用http://api.jquery.com/ajaxSuccess/

$(".ajax_vocab_link").click(function(evento) { 
    evento.preventDefault(); 
    var ajaxDivNum = $(this).attr('id').split('_')[1]; 
    var searchTerm = $(this).attr('title'); 
    $("#ajaxcontainer_"+ajaxDivNum).load("test-audioplayer-se.php", function() { 
     $('#audio-player-vocab0').mediaelementplayer({ 
      alwaysShowControls: true, 
      features: ['playpause'], 
      audioVolume: 'horizontal', 
      audioWidth: 400, 
      audioHeight: 120 
     }); 
    }); 
});