我正在对使用website作为音频播放器的audio.js进行问题排查。我正在尝试使用click方法配置音频播放器的event callbacks,但它无法识别我的点击。 然而,它确实在此jsfiddle上工作。非常感谢任何帮助
我做了什么 - 消除了所有CSS和不相关的脚本。 Click方法适用于audiojs类之前和之后的div。
我用于音频播放器的短代码 -
// audio player
add_shortcode( 'sp_audio', 'sp_audio_shortcode' );
function sp_audio_shortcode( $atts, $contents = null )
{
extract( shortcode_atts( array(
'id' => 'sp-audio-player',
'url' => '',
),
$atts ) );
$output .= '<audio preload="none">';
$output .= '<source src="' . $url . '" type="audio/mpeg">';
$output .= '</audio>';
return $output;
}
Chrome检查元素中的输出
<div class="musicplayer">
<div class="audiojs" classname="audiojs" id="audiojs_wrapper5">
<audio preload="none">
<source src="http://soundtrackloops.com/Demo/Electronisounds-AcousticBarefootBeats-DEMO.mp3" type="audio/mpeg">
</audio>
<div class="play-pause">
<p class="play"></p>
<p class="pause"></p>
<p class="loading"></p>
<p class="error"></p>
</div>
<div class="scrubber">
<div class="progress"></div>
<div class="loaded"></div>
</div>
<div class="time">
<em class="played">00:00</em>/<strong class="duration">00:00</strong>
</div>
<div class="error-message"></div>
</div>
我的测试点击方法
jQuery(document).ready(function($) {
$( ".audiojs" ).click(function() {
alert( "CLICK" );
});
初始化audio.js
audiojs.events.ready(function() {
audiojs.createAll();
});
答案 0 :(得分:0)
在页面加载后,您似乎正在追加音轨,因此您需要使用实时点击事件。
试试这个:
jQuery(document).ready(function($) {
$('.audiojs').live('click', function() {
alert( "CLICK" );
});
答案 1 :(得分:0)
我遇到了类似的问题,并通过在音频对象上使用事件侦听器来解决它。我想这取决于你想要跟踪的内容,但这可以让你控制播放和停止等等。
我调整了我的代码,因此它应该与你合作
audiojs.events.ready(function() {
var as = audiojs.createAll();
$(".audiojs audio").on('playing',function(){
console.log("Push playing");
});
// Other callbacks
});
希望你能让它运转起来。我每页只有一个播放器,如果你有更多只使用回调中的$(this)元素来识别哪个被改变了。