【发布时间】:2015-04-25 11:50:41
【问题描述】:
我在 iOS 移动 Safari 中遇到事件处理程序问题。
我有一个按钮,点击后可以播放一系列不同的声音文件。
代码在 Chrome、Firefox、IE 和 Safari 上按预期工作。但是在移动设备上,它只会播放该系列中的第一个声音。
我感觉移动版 Safari 在音频播放完毕后不会触发“结束”事件触发器。有人对这个有经验么?有什么建议吗?
同样,它在除 iOS 移动版 Safari 之外的所有浏览器上都能正常工作。
代码如下。
jQuery(document).ready(function($) {
$('.audio-button').click( function(){
$('.audio-button').toggle();
$('.disabled-audio').toggle();
var pinyinlinks = $( this ).attr('audio');
var pinyinsplit = pinyinlinks.split(',');
pinyinsplit = pinyinsplit.map(function(el) {
return 'http://mandarin.cards/wp-content/themes/cards/audio/' + el;
});
console.log(pinyinsplit);
var pinyincount = pinyinsplit.length;
if ( pinyincount > 1 ){
var myaudio = [];
var next = 0;
for ( var i = 0; i < pinyincount; i++ ) {
myaudio[i] = new Audio( pinyinsplit[i]);
if ( i != pinyincount - 1 ){
$( myaudio[i] ).on('ended', function(){;
next = next + 1;
myaudio[next].play();
})
};
}
myaudio[0].play();
setTimeout(function(){
$('.disabled-audio').toggle();
$('.audio-button').toggle();
}, 2300);
} else {
var myaudio = new Audio( pinyinlinks );
myaudio.play();
}
} )
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span onClick="" class="audio-button" style="cursor: pointer;" audio="ni_3.mp3,hao_3.mp3">
<span class="fa-stack fa-lg text-yellow" data-toggle="tooltip" data-placement="right" title="Read Word">
Read Word
</span>
</span>
<span class="disabled-audio" style="display: none;">
<span class="fa-stack fa-lg text-dk-gray" data-toggle="tooltip" data-placement="right" title="Read Word">
Read Word
</span>
</span>
【问题讨论】:
标签: javascript jquery ios safari