javascript - 让全局变量在函数中使用
问题描述
我正在使用这段代码来播放和暂停几个音频:
jQuery(document).ready(function(){
var getaudio;
var audiostatus = 'off';
var current_id;
jQuery(document).on('click touchend', '.speaker', function() {
elemento = jQuery(this);
current_id = elemento.children("audio").attr("id");
clase = current_id.replace(/player/, '');
if (!jQuery('.c'+clase).hasClass("speakerplay")) {
getaudio = jQuery('#'+current_id)[0];
if (audiostatus == 'off') {
jQuery('.c'+clase).addClass('speakerplay');
getaudio.load();
getaudio.play();
audiostatus = 'on';
return false;
} else if (audiostatus == 'on') {
jQuery('.c'+clase).addClass('speakerplay');
getaudio.play()
}
} else if (jQuery('.speaker').hasClass("speakerplay")) {
getaudio.pause();
jQuery('.c'+clase).removeClass('speakerplay');
audiostatus = 'on';
}
});
// Here is my problem: I need to get the value of current_id...
jQuery('#'+current_id).on('ended', function() {
jQuery('.speaker').removeClass('speakerplay');
audiostatus = 'off';
});
});
在最后一个函数中,一旦音频结束,我想删除类“speakerplay”,但我无法获得 current_id 的值
有人可以帮我吗?
提前致谢!
解决方案
不要使用 var current_id;
直接使用 window.current_id
window.current_id = elemento.children("audio").attr("id");
jQuery('#'+window.current_id).on('ended', function() {
推荐阅读
- database - 存储大文本值的最佳方法是什么?
- freertos - 如何在 FreeRTOS 中选择内存分配实现(heap_#.c 文件)?
- python - 为什么我不能复制resp。将此列插入数据框中?
- jquery - 计算复选框选择的总价
- r - R 中 hist() 中断的确切类别
- c++ - 列表循环检测
- r - R中的一个人如何在矩阵上应用带有“if”语句的“for”函数来创建平滑函数
- python - 如何在流式查询中使用 MLlib 模型(因“字段“功能”不存在而失败。”)?
- sql - 在 BigQuery 中按数组的第一个元素分组
- django - Django 2:如何在应用程序初始化时运行一次代码?